typescript - 打字稿中迭代的索引签名
问题描述
我们都可以看到这段代码是有效的javascript:
const myObj = {
foo: "string",
bar: 123,
baz: "important stuff"
};
['foo', 'bar'].forEach((key) => {
delete myObj[key];
});
元素隐式具有“任何”类型,因为“字符串”类型的表达式不能用于索引类型“{ foo: string; 酒吧:数字;baz:字符串;}'。在类型 '{ foo: string; 上找不到具有类型参数的索引签名。酒吧:数字;baz:字符串;}'。
那么实现这种 TypeScript 兼容的最佳方式是什么?
解决方案
尝试输入您的数组:
const myObj = {
foo: "string",
bar: 123,
baz: "important stuff"
};
const myArray: (keyof typeof myObj)[] = ['foo', 'bar']
myArray.forEach(...)
推荐阅读
- javascript - 如何将所有表单数据作为对象数组获取,例如请不要使用 jquery ID 或类选择器
- firebase - 错误:警告:数组或迭代器中的每个子项都应具有唯一的“键”属性。%s%s 使用 FlatList (React Native)
- javascript - JavaScript vs jQuery 数学行为?
- javascript - 如何将 id demo 的值传递到文本框的值
- neo4j - 尝试批量删除关系
- c# - 将 LitJson 转换为 Newtonsoft Json 以在 IOS 设备 Unity C# 上运行
- r - 在文本数据集上使用指标函数
- python - 我在 venv 文件夹中看不到已安装的软件包
- visual-studio-code - 如何让 vscode 知道 SCM 何时可见?
- javascript - 到 bytebin.lucko.me 的 HTTP POST 对 python 请求的响应与 jquery 的 ajax 不同。为什么?