我在我的项目中使用Typescript和React,但出现此错误:
const dataKey: String
Type 'String' cannot be used as an index type. ts(2538)
这是我的代码(简体):
export interface UserData {
email: string;
name: string;
buyer: boolean;
}
createObject(data: any) {
const dataObj: UserData = {
email: '',
name: '',
buyer: '',
};
for (const i in data) {
const dataKey: String = data[i].field.toLowerCase();
dataObj[dataKey] = data[i].value;
}
return dataObj;
}
我不知道如何在不使用字符串值的情况下将键/值对添加到我的dataObj中。我必须对它们的dataKey进行小写的字符串操作。
有人知道我该如何重做这段代码?
答案 0 :(得分:2)
将String
重写为string
。前者是一个对象;后者是原始的。您想使用原始的string
作为密钥,而不是密钥的对象。
例如:
String('foo') // object of type String
'foo' // string
也可以这样重写:
export interface UserData {
email: string;
name: string;
buyer: boolean;
}
如此:
export interface UserData {
[key: string]: string | boolean,
email: string;
name: string;
buyer: boolean;
}
因此TypeScript允许您使用计算出的属性名称。