Typescript 如何创建索引为字符串的对象数组?

Typescript 如何创建索引为字符串的对象数组?,typescript,Typescript,我想创造这样的东西 例如: let userTestStatus: { test: string, name: string }[] = [ { "test": 't', "name": "Available" }, { "test": 't1', "name": "Ready" }, { "test": 't2', "name": "Started" } ]; //I want to access the object like the

我想创造这样的东西

例如:

      let userTestStatus: { test: string, name: string }[] = [
      { "test": 't', "name": "Available" },
      { "test": 't1', "name": "Ready" },
      { "test": 't2', "name": "Started" }
  ];

  //I want to access the object like the example below
  console.log(userTestStatus['t'].name);


但这样我就没有定义了。我想像这样访问对象:userTestStatus['t'].name

这样做有什么好处吗

谢谢

您需要
keyBy

const newObj=..keyBy(userTestStatus,'test')
现在你可以

console.log(newObj['t'].name);

除非您同意按照Joseph Wang的建议将对象转换为新对象,否则您正在寻找的可能是为任何属性定义getter的方法

一些javascript实现过去有这样做的方法,但它们是非标准的,我相信现在已经被删除了

据我所知,创建具有这种“计算属性”的对象的唯一方法可能是

然而,这也需要更多的管道来让它工作

我的建议是试着找出你为什么需要这个,看看是否有其他更简单的方法来实现这一点

最简单的方法就是变换这个对象。此转换允许您以示例中所需的方式完全访问对象:

const newObj = Object.fromEntries(
  userTestStatus.map( item => [item.key, item] )
);