HarmonyOS 鸿蒙Next ArkTS 约束类中泛型属性初始化
HarmonyOS 鸿蒙Next ArkTS 约束类中泛型属性初始化
环境
- apiversion:ArkTS-Api 11 (OpenHarmony/Sdk)
问题描述
实际业务中,定义bean类,ArkTS 约束了bean类中泛型属性初始化
export class ResponseResult<E> {
code: number = 20000;
data: E;
message: string = '';
}
编译结果
ERROR: ArkTS:ERROR File: /Users/xxxx/xxxx/xxxx/entry/src/main/ets/rpc/ResponseResult.ets:3:3
Property 'data' has no initializer and is not definitely assigned in the constructor.
求助有什么合理的姿势?
更多关于HarmonyOS 鸿蒙Next ArkTS 约束类中泛型属性初始化的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
开发者您好,报错信息中明确提示未初始化,可以在构造器为data赋值。
更多关于HarmonyOS 鸿蒙Next ArkTS 约束类中泛型属性初始化的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
试试将ResponseResult定义为interface,就不用初始化了
找HarmonyOS工作还需要会Flutter的哦,有需要Flutter教程的可以学学大地老师的教程,很不错,B站免费学的哦:BV1S4411E7LY/?p=17
谢谢建议,我暂时将文件改为ts来避免artTs的编译检查~
在HarmonyOS鸿蒙Next中,ArkTS的约束类中泛型属性的初始化可以通过构造函数或直接赋值实现。泛型属性在类定义时声明,类型参数在实例化时指定。例如:
class ConstraintClass<T> {
value: T;
constructor(initialValue: T) {
this.value = initialValue;
}
}
// 实例化时指定类型
const instance = new ConstraintClass<number>(10);
泛型属性value
在构造函数中通过initialValue
初始化,类型参数T
在实例化时指定为number
,因此value
的类型为number
,初始值为10
。
在HarmonyOS的ArkTS中,约束类中的泛型属性初始化可以通过构造函数或默认值实现。例如:
class Box<T> {
value: T;
constructor(initialValue: T) {
this.value = initialValue;
}
}
const numberBox = new Box<number>(10);
const stringBox = new Box<string>("Hello");
通过构造函数传递初始值,确保泛型属性在实例化时被正确初始化。