typescript 根据变量的名称为对象编制索引

mcdcgff0  于 2023-02-20  发布在  TypeScript
关注(0)|答案(1)|浏览(157)

对于以下对象:

let key!:myType;

let dict:any = {key : 'value'};

是否可以使用名称key索引此dict

dict(nameof(key)) // returns 'value'

我之所以这样做是因为我想检查某个SimpleChanges是否发生在我的Angular组件中。然而,我只想在我的组件的@Input变量之一发生变化时触发某些方法。然而,我不想硬编码字符串名称。
使用变量为它建立索引似乎不起作用,因为我已经为它分配了一个特定的类型。

ru9i0ody

ru9i0ody1#

如果这是JavaScript(正如问题标签所暗示的),那么可以使用如下变量为对象建立索引:

object[variableName]

在您的情况下,类似于:

dict[key]

您可以找到有关此here的更多帮助

编辑-问题现在是TypeScript

在这种情况下,您可以设置dict对象的类型:

let key: myType = '';
let dict: {[key: myType]: string} = {key: value};

你可以在这里看到更多关于mapped types的信息。

相关问题