【发布时间】:2019-11-22 00:08:15
【问题描述】:
我是 TypeScript、React 和英语的新手,很抱歉有歧义。我写了一个这样的函数:
interface ObjectAttrUniqueState {
editVisible: boolean;
currentId: number;
selectedUnique: number[];
name: string;
desc: string;
}
// some other code.....
handleChangeForm(e: React.ChangeEvent<HTMLInputElement>, attr: 'desc' | 'name') {
this.setState({
[attr]: e.target.value,
});
}
TypeScript 输出:
Type '{ [x: string]: string; }' is missing the following properties from type 'Pick<ObjectAttrUniqueState, "editVisible" | "currentId" | "selectedUnique" | "name" | "desc">': editVisible, currentId, selectedUnique, name, desc
我试过这个作品
handleChangeForm(e: React.ChangeEvent<HTMLInputElement>, attr: 'name') {
this.setState({
[attr]: e.target.value,
});
}
我认为 TypeScript 判断 'name' 为简单的字符串标识符,判断 'name'|'desc' 为字符串类型,导致这种类型错误信息。 那么我该如何解决这个问题呢?
【问题讨论】:
标签: reactjs string typescript