我是打字稿语言的新手,我尝试使用打字稿来迭代对象。但这引发了如何处理此错误的错误。
[typescript]元素隐式地具有“ any”类型,因为类型为“ {{a:string; b:字符串; c:字符串; }”没有索引签名。
代码
var obj = {
a: ' a',
b: 'b ',
c: ' c '
};
Object.keys(obj).map(k => obj[k] = obj[k].trim());
console.log(obj);
答案 0 :(得分:1)
您可以尝试为变量obj
创建一个接口,以便TypeScript编译器可以知道键/属性和值的类型。
interface TheObject {
[key: string]: string;
}
const obj: TheObject = {
a: ' a',
b: 'b ',
c: ' c '
};
之所以显示以下错误([typescript] Element implicitly has an 'any' type because type '{ a: string; b: string; c: string; }' has no index signature.
),是因为TypeScript不知道index signature,因为原始obj
没有被键入,因此被定义为{{1 }},这意味着它可能不可迭代。
答案 1 :(得分:0)
您可以像这样在for in循环中迭代对象
for (var key in obj){
obj[key] = obj[key].trim()
console.log(obj[key])
}