定义包含对象数组的接口

时间:2017-04-28 10:23:44

标签: javascript typescript

我有一个在我的代码的很多部分中使用的对象,所以我想将它作为一个接口导出。我的目标是这样的:

 trueFalse: {'itemList' : Array<{'text'; 'value'}>} = {
    itemList: [
      {text: 'foundItem', value: true},
      {text: 'foundItem', value: false}
    ]
  };

我尝试以这种方式导入它,但它不起作用:

export interface ITrueFalse {
  text: string = 'foundItem',
  value: boolean
  itemList: Array<{'text';'value'}>
}

我想以某种方式实现上述接口:

trueFalse: {'itemList' : ITrueFalse} = {
    itemList : [{},{}]
;

正如您所看到的,我对打字稿界面并不了解。我只做了基本的类型定义。所以我不知道我做错了什么。感谢您的任何建议:)

2 个答案:

答案 0 :(得分:3)

<persistenceAdapter>
            <kahaDB directory="{YOUR_SHARED_STORAGE_DIRECTORY}" lockKeepAlivePeriod="5000">
                <locker>
                        <shared-file-locker lockAcquireSleepInterval="10000" />
                </locker>
            </kahaDB>
</persistenceAdapter>

您还可以内联编写项目类型本身,如果您只需要将其作为export interface TrueFalseItem { text: string; value: boolean; } export interface TrueFalseListWrapper { // renamed from ITrueFalse itemList: TrueFalseItem[]; }

结构的一部分引用,这是很方便的
TrueFalseListWrapper

答案 1 :(得分:2)

这是我更喜欢的另一种解决方案:

interface ItemListValue {
  text: string,
  value: boolean,
}

interface ItemList extends Array<itemListValue > {

}
let result: ItemList;

使用此解决方案,您可以使用Array的所有属性和方法(例如:length, push(), pop(), splice() ...)