• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# wrapBuilder
2<!--Kit: ArkUI-->
3<!--Subsystem: ArkUI-->
4<!--Owner: @zhangboren-->
5<!--Designer: @zhangboren-->
6<!--Tester: @TerryTsao-->
7<!--Adviser: @zhang_yixin13-->
8
9使用wrapBuilder封装全局@Builder,可以帮助维护代码。开发指南见[wrapBuilder:封装全局@Builder](../../../ui/state-management/arkts-wrapBuilder.md)。
10
11> **说明:**
12>
13> 本模块首批接口从API version 11开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
14
15## wrapBuilder
16
17wrapBuilder\<Args extends Object[]>(builder: (...args: Args) => void): WrappedBuilder\<Args>
18
19wrapBuilder是一个模板函数,返回一个`WrappedBuilder`对象。模板参数`Args extends Object[]`是需要包装的builder函数的参数列表。
20
21**系统能力:** SystemCapability.ArkUI.ArkUI.Full
22
23**参数:**
24
25| 参数名         | 类型                                   | 必填 | 说明                                                         |
26| -------------- | -------------------------------------- | ---- | ---- |
27| builder        | (...args: Args) => void                | 是   | @Builder装饰的全局函数。 |
28
29**示例:**
30
31```ts
32@Builder
33function MyBuilder(value: string, size: number) {
34  Text(value)
35    .fontSize(size)
36}
37let builderVar: WrappedBuilder<[string, number]> = wrapBuilder(MyBuilder);
38```
39## WrappedBuilder
40
41@Builder函数的包装类。模板参数`Args extends Object[]`应传入@Builder函数的参数类型列表。
42
43**系统能力:** SystemCapability.ArkUI.ArkUI.Full
44
45### 属性
46
47**系统能力:** SystemCapability.ArkUI.ArkUI.Full
48
49| 名称    | 类型                    | 只读 | 可选 | 说明      |
50| ------- | ---------------------- | ---- | ---  | -------- |
51| builder | (...args: Args) => void | 否  | 否   | @Builder修饰的全局函数。 |
52
53
54### constructor
55
56constructor(builder: (...args: Args) => void)
57
58WrappedBuilder的构造函数。
59
60**系统能力:** SystemCapability.ArkUI.ArkUI.Full
61
62**参数:**
63
64| 参数名    | 类型                                    | 必填 | 说明                                                              |
65| --------- | --------------------------------------- | ---- | ----------------------------------------------------------------- |
66| builder   | (...args: Args) => void)               | 是 | @Builder装饰的全局函数。 |
67
68**示例:**
69
70```ts
71@Builder
72function MyBuilder(value: string, size: number) {
73  Text(value)
74    .fontSize(size)
75}
76let builderVar: WrappedBuilder<[string, number]> = new WrappedBuilder<[string, number]>(MyBuilder);
77```