文档管理中心
我的

您当前正在浏览HarmonyOS最新文档,覆盖已发布的所有API版本,可在API参考中筛选您使用的API版本。详细的版本配套关系请参考版本说明。

指南与API参考API参考应用框架ArkUI(方舟UI框架)ArkTS组件自定义组件组件扩展装饰器wrapBuilder: 封装全局@Builder

wrapBuilder: 封装全局@Builder

Phone12+PC/2in113+Tablet12+TV19+Wearable18+

wrapBuilder用于封装全局@Builder,可以将全局@Builder函数作为参数传递,实现按引用传递和动态调用,提升代码复用性。

开发指南见:wrapBuilder:封装全局@Builder。

说明
  • 本模块首批接口从API version 11开始支持。

  • 本模块接口仅可在Stage模型下使用。

  • 后续版本的新增接口,采用上角标单独标记接口的起始版本。

wrapBuilder

Phone12+PC/2in113+Tablet12+TV19+Wearable18+

wrapBuilder<Args extends Object[]>(builder: (...args: Args) => void): WrappedBuilder<Args>

wrapBuilder是一个模板函数,返回一个WrappedBuilder对象。模板参数Args extends Object[]是需要封装的@Builder函数的参数列表。

元服务API: 从API version 12开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

展开
参数名 类型 必填 说明
builder (...args: Args) => void 是 @Builder装饰的全局函数,传入后将被封装为WrappedBuilder对象。函数参数args为该@Builder函数所需的参数列表。

返回值:

展开
类型 说明
WrappedBuilder<Args> @Builder函数的包装类对象,用于将全局@Builder函数及其参数封装为可按引用传递、支持动态调用的对象。

示例:

收起
自动换行
深色代码主题
复制
  1. @Builder
  2. function myBuilder(value: string, size: number) {
  3. Text(value)
  4. .fontSize(size)
  5. }
  6. // 使用wrapBuilder封装myBuilder
  7. let builderVar: WrappedBuilder<[string, number]> = wrapBuilder(myBuilder);

WrappedBuilder

Phone12+PC/2in113+Tablet12+TV19+Wearable18+

WrappedBuilder是@Builder函数的包装类,用于封装全局@Builder函数及其参数,实现按引用传递和动态调用。模板参数Args extends Object[]应传入@Builder函数的参数类型列表。

属性

元服务API: 从API version 12开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

展开
名称 类型 只读 可选 说明
builder (...args: Args) => void 否 否 @Builder装饰的全局函数。

constructor

Phone12+PC/2in113+Tablet12+TV19+Wearable18+

constructor(builder: (...args: Args) => void)

WrappedBuilder的构造函数。

元服务API: 从API version 12开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

展开
参数名 类型 必填 说明
builder (...args: Args) => void 是 @Builder装饰的全局函数,作为构造参数用于初始化WrappedBuilder实例。函数参数args为该@Builder函数所需的参数列表。

示例:

收起
自动换行
深色代码主题
复制
  1. @Builder
  2. function myBuilder(value: string, size: number) {
  3. Text(value)
  4. .fontSize(size)
  5. }
  6. // 使用WrappedBuilder封装myBuilder
  7. let builderVar: WrappedBuilder<[string, number]> = new WrappedBuilder<[string, number]>(myBuilder);