• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# napi_generator-1.3(2022-01-30)
2
3## 版本概述<a name="section249611124916"></a>
4
5发布napi_generator-1.3。
6
7## 版本特性<a name="section249611124917"></a>
8**表 1**  已支持特性
9
10[当前已知不支持的推荐方案](https://gitee.com/openharmony/napi_generator/blob/master/docs/SOLUTION.md)
11
12<a name="table143385853320"></a>
13
14<table><thead align="center"><tr id="row53375863312"><th class="cellrowborder" valign="top" width="18%" id="mcps1.2.3.1.1"><p id="p20331858193317"><a name="p20331858193317"></a><a name="p20331858193317"></a><ul>类别</ul></p>
15</th>
16<th class="cellrowborder" valign="top" width="45%" id="mcps1.2.3.1.2"><p id="p1133115820331"><a name="p1133115820331"></a><a name="p1133115820331"></a><ul>支持特性</ul></p>
17</th>
18<th class="cellrowborder" valign="top" width="25%" id="mcps1.2.3.1.3"><p id="p1133115820331"><a name="p1133115820333"></a><a name="p1133115820333"></a><ul>用例</ul></p>
19</th>
20<th class="cellrowborder" valign="top" width="12%" id="mcps1.2.3.1.4"><p id="p1133115820332"><a name="p1133115820332"></a><a name="p1133115820332"></a><ul>版本号</ul></p>
21</th>
22</tr>
23</thead>
24<tbody><tr id="row333115812331"><td class="cellrowborder" valign="top" width="18%" headers="mcps1.2.3.1.1 "><p id="p2142111345714"><a name="p2142111345714"></a><a name="p2142111345714"></a><ul>变量/返回值</ul></p>
25</td>
26<td class="cellrowborder" valign="top" width="45%" headers="mcps1.2.3.1.2 "><a name="ul9264132010"></a><a name="ul9264132010"></a><ul id="ul9264132010"><li>支持ts语言中string、number、boolean基础类型的变量/函数入参自动转换为C++类型</li><li>支持ts语言中interface及匿名interface复合类型的变量/函数入参自动转换为C++类型</li><li>支持ts语言中enum复合类型变量/函数入参自动转换为C++类型 [注:enum基本类型支持string、number类型]</li><li>支持ts语言中string、number、boolean、enum、interface、map数组类型的变量/函数入参自动转换为C++类型,且数组书写方式可以为array<>或[]两种</li><li>支持ts语言中string、number、boolean、array、map、interface的map类型的变量/函数入参自动转换为C++类型,且map书写方式可以为{[key:string]:any}或Map<>两种 [注:map的key仅支持string类型,value支持string/number/boolean/map/array类型]</li>  <li>支持ts接口文件中namespace域的any类型变量或函数参数转换为对应C++类型变量 [注:any的范围为string/number/boolean/map(string/number/boolean/array类型map)/array类型(string/number/boolean/map类型array)]</li><li>支持ts接口文件中namespace域的object变量 转换为对应C++变量[注:object_value类型为string/number/boolean/object]</li><li>支持ts接口文件中namespace域的可选变量 转换为对应的C++变量</li><li>支持ts接口文件中namespace域的多类型合并成新类型的变量转换为对应C++类型变量 [注:类型范围为:number/string/boolean]</li></ul>
27</td>
28<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.3.1.3 ">
29<ul id="ult940244418001">
30<li><a href="https://gitee.com/openharmony/napi_generator/tree/master/test/storytest/test_string">string用例</a>、<a href="https://gitee.com/openharmony/napi_generator/tree/master/test/storytest/test_number">number用例</a>、<a href="https://gitee.com/openharmony/napi_generator/tree/master/test/storytest/test_bool">boolean用例</a>
31</li>
32<li><a href="https://gitee.com/openharmony/napi_generator/tree/master/test/storytest/test_interface">interface用例</a>、<a href="https://gitee.com/openharmony/napi_generator/tree/master/test/storytest/test_interface_no_name">匿名interface用例</a>
33</li>
34<li><a href="https://gitee.com/openharmony/napi_generator/tree/master/test/storytest/test_enum">enum用例</a>、<a href="https://gitee.com/openharmony/napi_generator/tree/master/test/storytest/test_enum_interface">enum_interface用例</a>、<a href="https://gitee.com/openharmony/napi_generator/tree/master/test/storytest/test_enum_js">enum_JS用例</a>
35</li>
36<li><a href="https://gitee.com/openharmony/napi_generator/tree/master/test/storytest/test_[]">[]数组用例</a>、<a href="https://gitee.com/openharmony/napi_generator/tree/master/test/storytest/test_array">array数组用例</a>
37</li>
38<li><a href="https://gitee.com/openharmony/napi_generator/tree/master/test/storytest/test_map">map用例</a>、<a href="https://gitee.com/openharmony/napi_generator/tree/master/test/storytest/test_array_map">array map用例</a>
39</li>
40<li><a href="https://gitee.com/openharmony/napi_generator/tree/master/test/storytest/test_any">any用例</a>、<a href="https://gitee.com/openharmony/napi_generator/tree/master/test/storytest/test_any[]">any[]用例</a>
41</li>
42<li><a href="https://gitee.com/openharmony/napi_generator/tree/master/test/storytest/test_object">object用例</a>
43</li>
44<li><a href="https://gitee.com/openharmony/napi_generator/tree/master/test/storytest/test_optional">可选变量用例</a>
45</li>
46<li><a href="https://gitee.com/openharmony/napi_generator/tree/master/test/storytest/test_union">union用例</a>
47</li>
48</ul>
49</td>
50<td class="cellrowborder" valign="top" width="12%" headers="mcps1.2.3.1.4 "><p id="p2142111345715"><a name="p2142111345715"></a><a name="p2142111345715"></a><ul>V1.2</ul></p>
51</td>
52</tr>
53<tr id="row334175803317"><td class="cellrowborder" valign="top" width="18%" headers="mcps1.2.3.1.1 "><p id="p382391145710"><a name="p382391145710"></a><a name="p382391145710"></a><ul>函数类型</ul></p>
54</td>
55<td class="cellrowborder" valign="top" width="45%" headers="mcps1.2.3.1.2 "><a name="ul334485413318"></a><a name="ul334485413318"></a><ul id="ul334485413318"><li>支持ts语言中返回值、callback类型的同步函数自动转换为C++类型 [注:同步callback类型特指模板中定义的export interface Callback<T> {
56    (data: T): void;
57}]</li><li>支持ts语言中callback、promise类型的异步函数自动转换为C++类型 [注:异步callback类型特指模板中定义的export interface AsyncCallback<T> {
58    (err: BusinessError, data: T): void;
59}]</li><li>支持ts接口文件中namespace域的static函数自动转换为对应C++的函数</li><li>支持ts接口文件中namespace域的以$开头的函数自动转换为对应C++的自动函数</li><li>支持ts接口文件中namespace域的on注册、off去注册函数 [注:on/off事件类型支持string类型泛值或string类型固定值,回调函数支持AsyncCallback、Callback模板]</li><li>支持ts接口文件中namespace域的箭头函数转换为对应C++的函数</li></ul>
60</td>
61<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.3.1.3 ">
62<ul id="ult940244418002">
63<li>
64<a href="https://gitee.com/openharmony/napi_generator/tree/master/test/storytest/test_callback">callback用例</a>
65</li>
66<li>
67<a href="https://gitee.com/openharmony/napi_generator/tree/master/test/storytest/test_promise">promise用例</a>
68</li>
69<li>
70<a href="https://gitee.com/openharmony/napi_generator/tree/master/test/storytest/test_static">static用例</a>
71</li>
72<li>
73<a href="https://gitee.com/openharmony/napi_generator/tree/master/test/storytest/test_$">$用例</a>
74</li>
75<li>
76<a href="https://gitee.com/openharmony/napi_generator/tree/master/test/storytest/test_on">on/off用例</a>
77</li>
78<li>
79<a href="https://gitee.com/openharmony/napi_generator/tree/master/test/storytest/test_class">arrow func用例</a>
80</li>
81</ul>
82</td>
83<td class="cellrowborder" valign="top" width="12%" headers="mcps1.2.3.1.4 "><p id="p2142111345716"><a name="p2142111345716"></a><a name="p2142111345716"></a><ul>V1.2</ul></p>
84</td>
85</tr>
86<tr id="row834358143319"><td class="cellrowborder" valign="top" width="18%" headers="mcps1.2.3.1.1 "><p id="p1818191195713"><a name="p1818191195713"></a><a name="p1818191195713"></a><ul>interface</ul></p>
87</td>
88<td class="cellrowborder" valign="top" width="45%" headers="mcps1.2.3.1.2 "><a name="ul4367144411512"></a><a name="ul4367144411512"></a><ul id="ul4367144411512"><li>支持ts语言中interface域的变量、函数自动转换为C++类型</li><li>支持ts接口文件中interface继承class方式的声明 对应的C++实现</li><li>支持ts接口文件中interface继承interface方式的声明 对应的C++实现</li></ul>
89</td>
90<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.3.1.3 ">
91<ul id="ult940244418003">
92<li>
93<a href="https://gitee.com/openharmony/napi_generator/tree/master/test/storytest/test_interface">interface用例</a>
94</li>
95<li>
96<a href="https://gitee.com/openharmony/napi_generator/tree/master/test/storytest/test_extends">extends用例</a>
97</li>
98</ul>
99</td>
100<td class="cellrowborder" valign="top" width="12%" headers="mcps1.2.3.1.4 "><p id="p2142111345717"><a name="p2142111345717"></a><a name="p2142111345717"></a><ul>V1.2</ul></p>
101</td>
102</tr>
103<tr id="row119944512385"><td class="cellrowborder" valign="top" width="18%" headers="mcps1.2.3.1.1 "><p id="p919862210573"><a name="p919862210573"></a><a name="p919862210573"></a><ul>namespace</ul></p>
104</td>
105<td class="cellrowborder" valign="top" width="45%" headers="mcps1.2.3.1.2 "><a name="ul12374158862"></a><a name="ul12374158862"></a><ul id="ul12374158862"><li>支持ts语言中namespace域的变量、函数、interface自动转换为C++类型</li><li>支持ts接口文件中namespace域class转换为C++的class</li><li>支持ts接口文件中namespace域class继承转换为C++中继承的class</li> </ul>
106</td>
107<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.3.1.3 ">
108<ul id="ult940244418004">
109<li>
110<a href="https://gitee.com/openharmony/napi_generator/tree/master/test/storytest/test_namespace">namespace用例</a>
111</li>
112</ul>
113</td>
114<td class="cellrowborder" valign="top" width="12%" headers="mcps1.2.3.1.4 "><p id="p2142111345718"><a name="p2142111345718"></a><a name="p2142111345718"></a><ul>V1.2</ul></p>
115</td>
116</tr>
117<tr id="row18711154213388"><td class="cellrowborder" valign="top" width="18%" headers="mcps1.2.3.1.1 " rowspan="2"><p id="p111921822185713"><a name="p111921822185713"></a><a name="p111921822185713"></a><ul>文件</ul></p>
118</td>
119<td class="cellrowborder" valign="top" width="45%" headers="mcps1.2.3.1.2 "><a name="ul94024441879"></a><a name="ul94024441879"></a><ul id="ul94024441879"><li>支持ts文件中namespace数据类型转换为C++类型</li><li>支持ts接口文件名格式如下ohos.A.B.C.d.ts的文件转换</li><li>支持命令行方式转换时参数为多个文件路径,相互之间用英文逗号分开</li><li>支持命令行方式转换时指定文件夹路径方式转换</li><li>支持ts文件中import自定义文件</li></ul>
120</td>
121<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.3.1.3 ">
122<ul id="ult940244418005">
123<li>
124<a href="https://gitee.com/openharmony/napi_generator/tree/master/test/storytest/test_import">import用例</a>
125</li>
126</ul>
127</td>
128<td class="cellrowborder" valign="top" width="12%" headers="mcps1.2.3.1.4 "><p id="p2142111345718"><a name="p2142111345718"></a><a name="p2142111345718"></a><ul>V1.2</ul></p>
129</td>
130</tr>
131<tr id="row18711154213389">
132<td class="cellrowborder" valign="top" width="45%" headers="mcps1.2.3.1.2 "><a name="ul94024441880"></a><a name="ul94024441880"></a><ul id="ul94024441880"><li>DevEco Studio 上的IntelliJ插件支持如下文件名格式文件ohos.A.B.C.d.ts</li><li>VSCode插件支持如下文件名格式文件ohos.A.B.C.d.ts</li><li>命令行方式支持同时转换多个文件,相互之间用英文逗号分开</li><li>命令行方式支持文件夹转换</li></ul>
133</td>
134<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.3.1.3 ">
135插件界面适配暂无用例
136</td>
137<td class="cellrowborder" valign="top" width="12%" headers="mcps1.2.3.1.4 "><p id="p2142111345719"><a name="p2142111345719"></a><a name="p2142111345719"></a><ul>V1.3</ul></p>
138</td>
139</tr>
140<tr id="row119944512386"><td class="cellrowborder" valign="top" width="18%" headers="mcps1.2.3.1.1 "><p id="p919862210574"><a name="p919862210574"></a><a name="p919862210574"></a><ul>可靠性</ul></p>
141</td>
142<td class="cellrowborder" valign="top" width="45%" headers="mcps1.2.3.1.2 "><a name="ul12374158863"></a><a name="ul12374158863"></a><ul id="ul12374158863"><li>整改生成代码规范</li> </ul>
143</td>
144<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.3.1.3 ">
145代码规范暂无用例
146</td>
147<td class="cellrowborder" valign="top" width="12%" headers="mcps1.2.3.1.4 "><p id="p2142111345720"><a name="p2142111345720"></a><a name="p2142111345720"></a><ul>V1.3</ul></p>
148</td>
149</tr>
150</tbody>
151</table>
152
153**表 2**
154
155[待开发特性](https://gitee.com/openharmony/napi_generator/blob/master/docs/ROADMAP_ZH.md)
156
157