【发布时间】:2020-11-07 19:20:02
【问题描述】:
下面的代码不起作用,我被卡住了。我该如何解决这个问题?
type Data = {
id: number,
name: string
}
class Person {
id: number
name: string
constructor(personData: Data) {
this.id = personData.id
this.name = personData.name
}
update(updateData: Data) {
for (const prop in updateData) {
this[prop as keyof Data] = updateData[prop as keyof Data]
}
}
}
错误:
TS2322:键入“字符串 | number' 不可分配给类型 'never'。 类型“字符串”不可分配给类型“从不”。
重要的一行在更新方法中:this[prop as keyof Data] = updateData[prop as keyof Data]。我想打字稿不知道 this[prop] 和 updateData[prop] 是同一类型(字符串|数字)。如果所有属性都是同一类型,则没有错误。但是如何告诉 typescript,它们是同一类型的呢?
【问题讨论】:
-
这是个好问题。
标签: typescript