API10的严格语法strictPropertyInitialization的修改方法
通过实践,发现有两种修改方式均可编译通过,两种方法有什么推荐。
export class TestObj {
// API10下报错
res1: Resource;
// API10下报错
res?: Resource;
}
以上代码API10下编译报错:Property ‘res1’ has no initializer and is not definitely assigned in the constructor.
如下有两个改法,均可编译通过,请问两种改法的优劣和建议?
export class TestObj {
// 改法1
res1: Resource | null = null;
// 改法2
res2?: Resource;
}
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
deveco studio中如何升级API10?
2437浏览 • 1回复 已解决
API9和API10实现沉浸式窗口的方式
411870浏览 • 1回复 待解决
API10有没有接口能获取到系统的运行内存?
658浏览 • 1回复 待解决
API11编译的har包可以在api10上使用吗
1840浏览 • 1回复 待解决
HarmonyOS api10如何给子窗口设置圆角
306浏览 • 1回复 待解决
Json数据解析,原有是通过索引访问字段的方式obj[xxx-xxx.yy]的方式获取,ArkTS严格语法后,无法调用
118浏览 • 1回复 待解决
看到Screenshot,但是api10没找到,想要截取屏幕中的某个column
1655浏览 • 1回复 待解决
ListItem.editable 中的 EditMode.movable 在 api10 移除了有其他方案实现拖动排序吗?
1602浏览 • 1回复 待解决
开发者使用HarmonyOS时,是否需要考虑接口兼容性,例如API10和API11
1819浏览 • 1回复 待解决
鸿蒙OS API10 想给UI组件设置背景颜色,背景颜色渐变? 如何实现呢?
2964浏览 • 1回复 待解决
对象取值在api10中不支持这样取值 listItem[item],只能json 转两次
577浏览 • 1回复 待解决
HarmonyOS SDK如何升级API 10
4117浏览 • 1回复 待解决
Arkts中是否有严格校验类型的json字符串转为指定model的方法
1006浏览 • 1回复 待解决
bean类系统自动生成的set方法报语法错误
1706浏览 • 1回复 待解决
api 10或者11怎么打开wifi开关?
756浏览 • 0回复 待解决
开启了严格的ArkTS语言检查,JSON的取值方案
1322浏览 • 1回复 待解决
HarmonyOS API 10 无法集成 AGC SDK,编译报错
754浏览 • 1回复 待解决
iimsimsiHarmonyOS 获取和清理缓存的API方法
295浏览 • 1回复 待解决
在如下语法中,这是ArkTS的语法还是TypeScript中的语法,在TypeScript中没找到具体说明
180浏览 • 1回复 待解决
HarmonyOS 请问一下ArkTs是否有提供类似Java反射的语法或者API
451浏览 • 1回复 待解决
api异步方法提供同步api需求
106浏览 • 1回复 待解决
Deveco studio,API版本4.0.0(10),报错什么原因啊?
2483浏览 • 1回复 待解决
openHarmony 注册服务中的语法问题
7024浏览 • 1回复 待解决
使用router.pushNamedRoute方法,传递options参数时报语法错误
814浏览 • 1回复 待解决
HarmonyOS现在的ArkTS语法怎么编写自定义装饰器,包括类、方法、属性、参数的装饰器
263浏览 • 1回复 待解决
推荐使用改法1,在使用时会有类型检查从TypeScript到ArkTS的适配规则 ,
强制进行严格类型检查规则:arkts-strict-typing
级别:错误
在编译阶段,会进行TypeScript严格模式的类型检查,包括:
noImplicitReturns,
strictFunctionTypes,
strictNullChecks,
strictPropertyInitialization。
TypeScript
在定义类时,如果无法在声明时或者构造函数中初始化某实例属性,那么可以使用确定赋值断言符!来消除strictPropertyInitialization的报错。使用确定赋值断言符会增加代码错误的风险,开发者需要保证该实例属性在被使用前已被赋值,否则可能会产生运行时异常。使用确定赋值断言符会增加运行时的类型检查,从而增加额外的运行时开销,所以应尽可能避免使用确定赋值断言符。使用确定赋值断言符将产生warning: arkts-no-definite-assignment。
相关约束:
使用具体的类型而非any或unknown不允许通过注释关闭类型检查。