OpenHarmony开发者论坛
标题:
求助,?:可选参数中undefined 的值被赋值给了期望是 Person 类型的变量
[打印本页]
作者:
youan222
时间:
2024-9-14 17:24
标题:
求助,?:可选参数中undefined 的值被赋值给了期望是 Person 类型的变量
[md]### 【问题描述】
class Person{
name:string
age:number
gf
erson
constructor(name:string,age:number,gf?
erson) {///////此处可选参数
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
[/md]
作者:
马迪
时间:
2024-9-17 08:30
应该是new Person 时传入了一个Person | undefined的类型吧,与构造函数的参数不一致。
按照构造函数的参数的要求,要么不传gf,要么传入一个类型为Person的gf就好了。
我是习惯用用{}初始化js对象,而不是用构造函数
作者:
youan222
时间:
2024-9-18 08:37
回复
马迪
: 你好,确实是new person里传了一个undefined的类型,因为这个gf是可选参数嘛,new person的时候,没有选择gf,它就提示undefined,倒是没有感叹号,但是预览器日志里报错如上,无法预览了
作者:
马迪
时间:
2024-9-29 14:26
回复
youan222
: 可选参数是要么传和要么不传
Person 和 Person|undefined 是类型不匹配,2码事。 也可以确认不是undefined后,通过as转换
欢迎光临 OpenHarmony开发者论坛 (https://forums.openharmony.cn/)
Powered by Discuz! X3.5