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
待解决
相关问题
API10有没有接口能获取到系统的运行内存?
277浏览 • 1回复 待解决
ListItem.editable 中的 EditMode.movable 在 api10 移除了有其他方案实现拖动排序吗?
489浏览 • 1回复 待解决
Arkts中是否有严格校验类型的json字符串转为指定model的方法
465浏览 • 1回复 待解决
bean类系统自动生成的set方法报语法错误
470浏览 • 1回复 待解决
开启了严格的ArkTS语言检查,JSON的取值方案
427浏览 • 1回复 待解决
HarmonyOS API 10 无法集成 AGC SDK,编译报错
395浏览 • 1回复 待解决
使用router.pushNamedRoute方法,传递options参数时报语法错误
363浏览 • 1回复 待解决
openHarmony 注册服务中的语法问题
5593浏览 • 1回复 待解决
Deveco studio,API版本4.0.0(10),报错什么原因啊?
1111浏览 • 1回复 待解决
ArkTS语法咨询的问题有懂得吗?
1426浏览 • 1回复 待解决
API9和API10实现沉浸式窗口的方式
319435浏览 • 1回复 待解决
在接口内定义匿名回调的语法
456浏览 • 1回复 待解决
mysql orderBy order by sort=0 语法有懂的吗?
1045浏览 • 1回复 待解决
API11编译的har包可以在api10上使用吗
586浏览 • 1回复 待解决
API9 如何隐藏应用的标题栏,或者如何修改标题栏菜单按钮?
1154浏览 • 1回复 待解决
通过webView修改iframe的URL
401浏览 • 1回复 待解决
java对象hashcode方法有替代api或者库吗
579浏览 • 1回复 待解决
如何修改应用的icon图标
627浏览 • 1回复 待解决
求xml文件给图片添加无障碍朗读的语法?
3596浏览 • 1回复 待解决
deveco studio中如何升级API10?
984浏览 • 1回复 已解决
win10下MySQL的后台启动问题?
1483浏览 • 1回复 待解决
看到Screenshot,但是api10没找到,想要截取屏幕中的某个column
543浏览 • 1回复 待解决
JS 卡片的背景颜色怎么修改呢?
5347浏览 • 3回复 待解决
我的p30按照文档中的方法查询其api version为 6 release,这是否意味着p30无法开发api8的应用? 已解决
1408浏览 • 1回复 待解决
Tab组件的Tabbar中字体的颜色如何修改
367浏览 • 1回复 待解决
推荐使用改法1,在使用时会有类型检查从TypeScript到ArkTS的适配规则 ,
强制进行严格类型检查规则:arkts-strict-typing
级别:错误
在编译阶段,会进行TypeScript严格模式的类型检查,包括:
noImplicitReturns,
strictFunctionTypes,
strictNullChecks,
strictPropertyInitialization。
TypeScript
在定义类时,如果无法在声明时或者构造函数中初始化某实例属性,那么可以使用确定赋值断言符!来消除strictPropertyInitialization的报错。使用确定赋值断言符会增加代码错误的风险,开发者需要保证该实例属性在被使用前已被赋值,否则可能会产生运行时异常。使用确定赋值断言符会增加运行时的类型检查,从而增加额外的运行时开销,所以应尽可能避免使用确定赋值断言符。使用确定赋值断言符将产生warning: arkts-no-definite-assignment。
相关约束:
使用具体的类型而非any或unknown不允许通过注释关闭类型检查。