如何使用打字稿迭代对象

时间:2019-11-08 05:00:43

标签: typescript

我是打字稿语言的新手,我尝试使用打字稿来迭代对象。但这引发了如何处理此错误的错误。
[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);

2 个答案:

答案 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])
}