【发布时间】:2022-05-11 17:03:32
【问题描述】:
interface modal {
name: string;
check: boolean;
}
type Key = "name" | "check";
const obj: modal = fn();
function fn():any {
return {
name: "hello"
}
}
class Modal {
name: string;
check: boolean;
constructor() {
this.name = "";
this.check = false;
Object.keys(obj).forEach((key: string) => {
this[key as keyof modal] = obj[key as keyof modal];
})
}
}
我在这个[key as keyof modal] 遇到错误
错误信息:输入'string | boolean' 不能分配给类型 'never'。类型“字符串”不可分配给类型“从不”。
【问题讨论】:
-
在
Modal类中,keyof modal不允许您对Modal对象进行索引,即使它碰巧与modal具有相同的键,这是一个不相关的接口。你需要keyof Modal。 -
你的意思是改成this[key as keyof Modal]而不是this[key as keyof modal]?不幸的是,它也不起作用
标签: typescript