如何用typescript创建命名对象?

时间:2017-01-02 17:54:43

标签: angular typescript interface

使用typescript为我的angular2服务设置一些接口。遇到配置问题。

我希望能够访问我的数据myItem['chickens']&取回以下对象:

{
  name:"chicken",
  price:1000,
  names:["Harry", "Barry", "Larry"]
}

如何以正确的方式编写界面,以便我可以像前面提到的那样恢复数据?

export interface StoreItem {
      itemName:{
        itemName: string;
        price: number;
        nameList: Array<string>;
      }
    }

1 个答案:

答案 0 :(得分:3)

您的StoreItem有字符串键和输入值,因此您可以这样做:

interface StoreItem {
  [key: string]: {
    itemName: string;
    price: number;
    nameList: Array<string>;  // or string[]
  }
}

这很乐意允许例如:

let myItem: StoreItem = {
  chickens: {
    name: 'chicken',
    price: 1000,
    names: ['Harry', 'Barry', 'Larry']
  }
};

您可以myItem['chickens']或仅myItem.chickens访问该内部项目。