18c339a94Sopenharmony_ci# dts2cpp工具
28c339a94Sopenharmony_ci
38c339a94Sopenharmony_ci## 简介
48c339a94Sopenharmony_cidts2cpp工具,它可以根据用户指定路径下的ts(typescript)接口文件一键生成NAPI框架代码、业务代码框架、GN文件等。在开发JS应用与NAPI间接口时,底层框架开发者无需关注js语法、C++与JS之间的数据类型转换等上层应用转换逻辑,只关注底层业务逻辑即可,专业的人做专业的事,从而可以大大提高开发效率。
58c339a94Sopenharmony_ci
68c339a94Sopenharmony_ci## 约束
78c339a94Sopenharmony_ci系统:建议Ubuntu 20.04或者Windows 10
88c339a94Sopenharmony_ci
98c339a94Sopenharmony_ci依赖版本:VS Code 1.62.0
108c339a94Sopenharmony_ci
118c339a94Sopenharmony_ci## 使用方法
128c339a94Sopenharmony_ci
138c339a94Sopenharmony_ci### 生成框架
148c339a94Sopenharmony_ci
158c339a94Sopenharmony_ci1.安装typescript:在napi_generator/src/cli/dts2cpp/src目录下执行命令:
168c339a94Sopenharmony_ci
178c339a94Sopenharmony_ci	npm i typescript
188c339a94Sopenharmony_ci
198c339a94Sopenharmony_ci2.安装stdio:在napi_generator/src/cli/dts2cpp目录下执行命令:
208c339a94Sopenharmony_ci
218c339a94Sopenharmony_ci	npm i stdio
228c339a94Sopenharmony_ci
238c339a94Sopenharmony_ci3.将待转换的文件@ohos.napitest.d.ts拷贝到napi_generator/src/cli/dts2cpp/src/gen下,并在该目录下新建out目录;@ohos.napitest.d.ts如下所示:
248c339a94Sopenharmony_ci
258c339a94Sopenharmony_ci```
268c339a94Sopenharmony_cideclare namespace napitest {
278c339a94Sopenharmony_ci  function funcTest(v: boolean): string;
288c339a94Sopenharmony_ci}
298c339a94Sopenharmony_ciexport default napitest;
308c339a94Sopenharmony_ci```
318c339a94Sopenharmony_ci
328c339a94Sopenharmony_ci4.在napi_generator/src/cli/dts2cpp/src/gen下执行以下命令生成napi框架代码:
338c339a94Sopenharmony_ci
348c339a94Sopenharmony_ci```
358c339a94Sopenharmony_cinode cmd_gen.js -f @ohos.napitest.d.ts -o out
368c339a94Sopenharmony_ci```
378c339a94Sopenharmony_ci
388c339a94Sopenharmony_ci其中,参数详情如下:
398c339a94Sopenharmony_ci
408c339a94Sopenharmony_ci   -f, 待转换的.d.ts文件,若同时转换多个文件,文件之间用“,”隔开;
418c339a94Sopenharmony_ci
428c339a94Sopenharmony_ci  -d, 根据指定路径转换该文件夹中所有.d.ts文件;
438c339a94Sopenharmony_ci
448c339a94Sopenharmony_ci  -i, 可选参数,默认false,待转换.d.ts文件中引用非basic.d.ts的ts文件时打开开关;
458c339a94Sopenharmony_ci
468c339a94Sopenharmony_ci  -o, 可选参数,默认为当前目录,指定生成框架代码输出路径;
478c339a94Sopenharmony_ci
488c339a94Sopenharmony_ci  -n, 可选参数,默认为uint32_t,指定生成框架代码中number类型全部为指定类型;
498c339a94Sopenharmony_ci
508c339a94Sopenharmony_ci  -s, 可选参数,默认为不配置业务代码,指定生成框架代码的业务配置文件,用于粘合工具代码和业务代码的配置。
518c339a94Sopenharmony_ci
528c339a94Sopenharmony_ci  备注1:-f与-d两个参数只选其中一个参数即可。
538c339a94Sopenharmony_ci
548c339a94Sopenharmony_ci  备注2:若.d.ts文件中声明了其它.d.ts文件,将此类文件放置在待转换.d.ts文件同级目录。
558c339a94Sopenharmony_ci
568c339a94Sopenharmony_ci5.输出文件如下所示:
578c339a94Sopenharmony_ci
588c339a94Sopenharmony_ci![](./docs/figures/dts2cpp_outResult.png)
598c339a94Sopenharmony_ci
608c339a94Sopenharmony_ci### 集成
618c339a94Sopenharmony_ci
628c339a94Sopenharmony_ci[生成代码集成到OpenHarmony的方法](https://gitee.com/openharmony/napi_generator/blob/master/src/cli/dts2cpp/docs/usage/dts2cpp_ENSEMBLE_METHOD_ZH.md)
638c339a94Sopenharmony_ci
648c339a94Sopenharmony_ci### 调用
658c339a94Sopenharmony_ci
668c339a94Sopenharmony_ciNAPI框架代码生成后,系统框架开发者进行二次开发后,即可集成到OpenHarmony编译系统,生成对应的库文件,供应用开发者调用接口。工具集成测试的具体操作步骤可以左键单击以下链接了解:
678c339a94Sopenharmony_ci
688c339a94Sopenharmony_ci[工具集成测试](https://gitee.com/openharmony/napi_generator/blob/master/src/cli/dts2cpp/docs/usage/dts2cpp_INTEGRATION_TESTING_ZH.md)