OpenHarmony开发者论坛

标题: 求助,?:可选参数中undefined 的值被赋值给了期望是 Person 类型的变量 [打印本页]

作者: youan222    时间: 2024-9-14 17:24
标题: 求助,?:可选参数中undefined 的值被赋值给了期望是 Person 类型的变量
[md]### 【问题描述】

class Person{
name:string
age:number
gferson
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