javascript - 如何在 typescript 中动态访问javascript对象的键

标签 javascript typescript

interface IObj { 
    fname: string;
    lname: string;
}

const obj: IObj = <IObj>{};

const array: string[] = ['fname', 'lname'];

array.forEach((key: string, index: number) => {
    obj[key] = `${index}`; // Element implicitly has an 'any' type because expression of type 'string' can't be used to index type 'IObj'.
});

我想动态访问对象键。但 typescript 不允许我这样做。 有什么方法可以在 typescript 中实现。

最佳答案

您将 array 声明为 string[] 类型,并将 key 声明为 string 类型。如果你想让 Typescript 知道这些字符串实际上是 IObj 的键,那么告诉它:

const array: (keyof IObj)[] = ['fname', 'lname'];

array.forEach((key: keyof IObj, index: number) => {
    obj[key] = `${index}`;
});

Playground Link

关于javascript - 如何在 typescript 中动态访问javascript对象的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59098788/

相关文章:

javascript - Font Awesome 图标未在 Phonegap iOS 应用程序中呈现

javascript - 通过单击按钮旋转图像

javascript - 如何在 typescript next.js 中使用顶级 "await"

javascript - Typescript 不从 TFS 发布生成 .js

javascript - 客户端总是响应之前服务器发送的事件,而不是当前事件

javascript - 如何停止/暂停从另一个 onclick 事件执行 jquery 更改事件?

javascript - Knockoutjs 跟踪 ajax 调用后的变化

javascript - 如何在 React.memo 中使用 Props 和泛型

typescript 将null分配给接口(interface)

javascript - typescript :WAITING所有的 promise