• Lv0
    粉丝0

积分6 / 贡献0

提问2答案被采纳0文章0

求助,?:可选参数中undefined 的值被赋值给了期望是 Person 类型的变量

youan222 显示全部楼层 发表于 2024-9-14 17:24:57

【问题描述】

class Person{ name:string age:number gf:Person constructor(name:string,age:number,gf?:Person) {///////此处可选参数 this.name=name this.age=age this.gf=gf } }

[Compile Result] ArkTS:ERROR File: D:/c01image/entry/src/main/ets/pages/statepage.ets:9:5 [Compile Result] Type 'Person | undefined' is not assignable to type 'Person'. [Compile Result] Type 'undefined' is not assignable to type 'Person'.

【运行环境】

DevEvoStudio版本:4.1 SDK版本:11

您尚未登录,无法参与评论,登录后可以:
参与开源共建问题交流
认同或收藏高质量问答
获取积分成为开源共建先驱

精彩评论3

马迪

沙发 发表于 2024-9-17 08:30:47
应该是new Person 时传入了一个Person | undefined的类型吧,与构造函数的参数不一致。

按照构造函数的参数的要求,要么不传gf,要么传入一个类型为Person的gf就好了。

我是习惯用用{}初始化js对象,而不是用构造函数

youan222

发表于 2024-9-18 08:37  IP属地: 江苏省扬州市

回复 马迪: 你好,确实是new person里传了一个undefined的类型,因为这个gf是可选参数嘛,new person的时候,没有选择gf,它就提示undefined,倒是没有感叹号,但是预览器日志里报错如上,无法预览了

马迪

发表于 2024-9-29 14:26  IP属地: 河南省郑州市

回复 youan222: 可选参数是要么传和要么不传
Person 和 Person|undefined 是类型不匹配,2码事。   也可以确认不是undefined后,通过as转换

【2 条回复】

Copyright   ©2023  OpenHarmony开发者论坛  京ICP备2020036654号-3 |技术支持 Discuz!

返回顶部