• Home
Name
Date
Size
#Lines
LOC

..--

DEVELOP_ZH.mdD12-May-20244.4 KiB13972

FAQ.mdD12-May-2024473 136

INSTRUCTION_ZH.mdD12-May-20244.1 KiB9963

README_ZH.mdD12-May-20244.3 KiB12781

ROADMAP_ZH.mdD12-May-20242.6 KiB4232

ts_Gen-1.0.mdD12-May-20245.6 KiB6153

README_ZH.md

1# Ts接口生成工具
2
3## 简介
4本文主要介绍ts(type-script)接口生成工具,它可以根据定义在c++头文件中的接口,生成type-script语言的ts接口文件。若某个服务实现方式为c++,且供应用层访问的接口已在.h文件中定义,此时,NAPI接口开发者使用此工具可一键生成对应的ts文件,进而将生成的ts文件作为NAPI框架生成代码工具的输入,生成NAPI框架代码。串行使用ts接口生成工具、NAPI框架代码生成工具,形成工具链,达到降低NAPI接口开发难度,提高开发效率。目前工具支持可执行文件、IntelliJ插件两种入口。
5
6更多工具的架构和实现原理详情,可以左键单击以下链接了解:
7
8[工具使用说明](https://gitee.com/openharmony/napi_generator/tree/master/docs/ts/INSTRUCTION_ZH.md)
9
10	├── napi_generator                # NAPI框架代码生成工具
11	│   ├── ...                       # 其他文档
12	│   ├── src                       # 工具源码
13	│   │   ├── gen                   # NAPI框架工具源码
14	│   │   ├── tsGen                 # Ts框架工具源码
15	│   │   |   ├── header_parser.py  # 解析C++头文件并生成表示类的数据结构
16	│   │   |   |── tsMain.js         # Ts框架工具源码入口
17	│   │   ├── ...                   # 其他文件
18
19## 约束
20系统:建议Ubuntu 20.04或者Windows 10
21
22依赖版本:VS Code 1.62.0
23
24## 使用方法
25
26### 使用对象
27
28系统开发者、应用Native开发者
29
30### 使用场景
31
321) 系统框架层新增子系统,需对应用层提供接口。
332) 系统框架层子系统能力增强后,需对应用层提供新接口。
343) 应用层引入C++三方库,需增加OpenHarmony应用层接口。
35
36### 工具使用
37
38工具有两种类型,分别是可执行文件、IntelliJ插件。其中的可执行文件可根据工具使用者的开发环境选择,支持Windows,Linux和Mac。可执行文件、IntelliJ插下载路径如下,选择napi_generator_outputs.zipgenerator.jar下载:
39
40[下载链接](http://ftp.kaihongdigi.com:5000/fsdownload/mKjfCmPjk/generator_outputs_NAPI_0930)
41
42具体的工具使用步骤,可以左键单击以下链接了解:
43
44[工具使用说明](https://gitee.com/openharmony/napi_generator/tree/master/docs/ts/INSTRUCTION_ZH.md)
45
46### 工具输出
47
48根据使用者指定的.h文件,工具会输出对应的ts接口文件。为了方便使用者快速上手工具,可供测试的test.h文件样例如下:
49
50```
51
52	#include < string >
53	#include < vector >
54	using namespace std;
55
56	class TestA {
57    	public:
58    	char16_t string1;
59    	void add(string v, long double v1[]);
60	};
61	double count(double v, double v1[]);
62
63	namespace Space {
64    	class TestBB {
65        	public:
66        	short string4;
67        	bool ifExist(bool v, bool v1[]);
68	};
69    	uint32_t max(uint32_t v, uint32_t v1[]);
70	}
71```
72
73在window环境下的,根据输入文件test.h,生成的输出文件,如下所示:
74
75![](../../figures/h-2-ts-succ.png)
76
77
78其中生成的"test.d.ts"文件,定义了应用开发接口,如下所示:
79
80	declare class TestA {
81		string1: string;
82		add(v: string, v1: Array<number>): void;
83	}
84	declare namespace Space {
85		function max(v: number, v1: Array<number>): number;
86		class TestBB {
87	    	string4: number;
88	    	ifExist(v: boolean, v1: Array<boolean>): boolean;
89		}
90	}
91	declare function count(v: number, v1: Array<number>): number;
92
93	export default Space;
94
95
96## 工具开发说明
97
98### 对象
99
100工具的开发者
101
102### 开发场景
103
104若当前工具的功能已经不能满足开发者的全部需求,则开发者可以基于已有的源码对工具进行二次开发,来增强工具的能力,编译打包生成自定义的可执行文件和插件。
105
106### 开发步骤
107
108开发者可以根据如下的步骤来完成对工具的开发:
109
110 [工具开发说明](https://gitee.com/openharmony/napi_generator/tree/master/docs/ts/DEVELOP_ZH.md)
111
112## 版本说明
113
114 [版本说明](https://gitee.com/openharmony/napi_generator/blob/master/docs/ts/ts_Gen-1.0.md)
115
116## FAQ
117
118  [FAQ](https://gitee.com/openharmony/napi_generator/tree/master/docs/ts/FAQ.md)
119
120## 参与贡献
121
122暂无
123
124## 相关仓
125
126暂无
127