如何为动态对象定义类型或接口?

时间:2019-11-12 19:38:15

标签: typescript

让我们假设我有以下代码:

interface ItemsByKeyInterface {}
interface AType {
  key: number;
  label: string;
}

const array: AType[] = [
  { key: "a", label: "1" },
  { key: "b", label: "2" }
];

const itemsByKey: ItemsByKeyInterface = array.reduce((total, item) => {
  return {
    ...total,
    [item.key]: item
  };
}, {});

如何正确定义ItemsByKeyInterface? 考虑一下AType可以是任何东西(具有key属性的任何东西),并且数组可以具有无限数量和未知数量的项目(考虑到key在该数组中是唯一的)

const p = itemsByKey.b.label;

1 个答案:

答案 0 :(得分:3)

您尝试过

interface ItemsByKeyInterface {
  [key: number]: Item;
}