这是我的代码。
interface myObj {
name?: string,
age?: number,
address?: string
}
const obj1: myObj = { age: 12 }
const obj2 = { name: 'jack' }
const obj3: myObj = { ...obj1, ...obj2 }
const printOut = (msg: string): void => {
console.log(msg)
}
printOut(obj3.name)
我收到一条错误消息
TS2345: Argument of type 'string | undefined' is not assignable to parameter of type 'string'. Type 'undefined' is not assignable to type 'string'.
在线
printOut(obj3.name)
感谢帮助!
答案 0 :(得分:0)
由于错误正试图告诉您,.name
上的myObj
可能是undefined
,因此您不能将其作为string
传递。
您可以从声明中删除: myObj
,以让编译器推断变量的类型,在这种情况下,它将推断(由于类型obj2
)name
是{ {1}}。
答案 1 :(得分:0)
我解决了!基本上,删除name
键后面的问号。由于我正在使用此name
键,因此它不应该是maybe
类型。