我需要通过字符串属性名称更新类的属性值。我首先通过此方法确保属性名称有效:
export class ClientDTO {
...
static isValidPropertyName(name: string): name is keyof ClientDTO {
return (name as keyof ClientDTO) !== undefined
}
}
然后在另一堂课上,我正在这样做:
foo(key: string, newValue: string) {
if (!ClientDTO.isValidPropertyName(key)) {
return
}
if (newValue !== this.originalClient[key]) {
// @ts-ignore
this.originalClient[key] = newValue
}
}
查找现在运行良好,但要进行更新,我必须把它放在// @ts-ignore
那里,我真的很想弄清楚如何正确地做到这一点,而不必在那里忽略。
我打开了严格的检查,所以我得到了错误
TS2322:类型“任何”不可分配给类型“从不”