1# 在build-profile.json5中配置arkOptions
2
3## 配置文件标签
4
5  **表1** arkOptions的types字段配置文件标签说明
6
7| 属性名称 | 含义 | 数据类型 | 是否可缺省 |
8| -------- | -------- | -------- | -------- |
9| types | 通过types字段将指定的类型声明文件作为全局引入,从而避免在每个源码文件中单独引入 | 数组 | 该标签可缺省,缺省值为空 |
10
11## arkOptions中的types字段配置说明
12
13arkOptions中types字段示例
14
15在模块build-profile.json5配置文件buildOption标签的arkOptions属性中添加types字段。
16```json
17// 在/entry/build-profile.json5
18{
19  "arkOptions": {
20    "types": ["chai", "./oh_modules/@types/mocha", "./src/main/ets/pages/global"]
21  }
22}
23```
24
25types字段支持填写包名、包所在位置的相对路径以及声明文件所在相对路径,仅支持当前模块内的查找,若目录下存在同名文件(后缀不同),默认加载顺序.d.ets > .d.ts。<br />
26(1)填写包名方式:通过包名到oh_modules/@types/目录查找包名中定义的声明文件,如"chai"。<br />
27(2)填写包所在相对路径方式:支持在基于build-profile.json5的相对路径中查找定义的声明文件,如"./oh_modules/@types/mocha"。<br />
28(3)填写声明文件所在相对路径方式:支持查找相对路径下的声明文件,如"./src/main/ets/pages/global"。
29
30*注意:*
31
32如果在types字段中填写包名或者包所在位置的相对路径,需要在工程文件/entry/oh-package.json5中dependencies作如下配置,
33```json
34"dependencies": {
35  "@types/chai": "latest",
36  "@types/mocha": "latest"
37}
38```
39
40如果在types字段中填写声明文件所在相对路径,前提是在模块下存在相应的声明文件,比如模块下存在src/main/ets/pages/global.d.ts声明文件,声明文件内容如下所示:
41```typescript
42declare namespace Global {
43  type ObjectType = string | number;
44}
45```
46
47通过types全局引入后,对全局类型的使用示例如下:
48```typescript
49// 在entry/src/main/ets/pages/Index.ets
50let a: Chai.Message;
51let b: Mocha.HookFunction;
52let c: Global.ObjectType;
53```