• Lv0
    粉丝0

积分3 / 贡献0

提问1答案被采纳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!

    返回顶部