简体   繁体   English

如何使用打字稿创建命名对象?

[英]How to create named object with typescript?

Working on getting some interfaces setup for my angular2 service using typescript. 使用打字稿为我的angular2服务获取一些接口设置。 Running into an issue of configuration. 遇到配置问题。

I'd like to be able to access my data like this myItem['chickens'] & get back the following object: 我希望能够访问像myItem['chickens']并获取以下对象:

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

How do I write my interface the correct way so that I can get my data back as previously mentioned? 如何以正确的方式编写接口,以便如前所述将数据取回?

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

Your StoreItem s have string keys and typed values, so you could do: 您的StoreItem具有字符串键和键入的值,因此您可以执行以下操作:

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

This would happily allow eg: 这将很高兴地允许例如:

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

And you can access that inner item either as myItem['chickens'] or simply myItem.chickens . 您可以将内部项目以myItem['chickens']myItem.chickens

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM