首页 > 解决方案 > 打字稿中迭代的索引签名

问题描述

我们都可以看到这段代码是有效的javascript:

const myObj = {
  foo: "string",
  bar: 123,
  baz: "important stuff"
};

['foo', 'bar'].forEach((key) => {
  delete myObj[key];
});

元素隐式具有“任何”类型,因为“字符串”类型的表达式不能用于索引类型“{ foo: string; 酒吧:数字;baz:字符串;}'。在类型 '{ foo: string; 上找不到具有类型参数的索引签名。酒吧:数字;baz:字符串;}'。

那么实现这种 TypeScript 兼容的最佳方式是什么?

标签: typescriptindex-signature

解决方案


尝试输入您的数组:

const myObj = {
  foo: "string",
  bar: 123,
  baz: "important stuff"
};

const myArray: (keyof typeof myObj)[] = ['foo', 'bar']

myArray.forEach(...)

推荐阅读