如何声明字典的接口?

Ben*_*oit 2 typescript

我希望为我喜欢的插件添加定义,我希望知道如何在不使用任何类型的情况下定义类型以允许此类型.

我将使用这样的属性:

    views: {
        'list.view1': {
          dropPagingCap: 20,
          list_infiniteScroll: true,
          list_selectable: 'multi'
        },
        'list.view2': {
          dataSource: function(options, callback){ ... },
          dropPagingCap: 30,
          list_selectable: true
        }
    }
Run Code Online (Sandbox Code Playgroud)

我试过这个,但是除了对象{}之外的库,而不是数组[]

interface IFuelUxRepeaterViews {
    [index: string]: IFuelUxRepeaterParametersBase | IFuelUxRepeaterListParameter | IFuelUxRepeaterTumbnailParameter | IFuelUxRepeaterAllParameter;
}
Run Code Online (Sandbox Code Playgroud)

我不知道如何命名这种JavaScript类型的声明.

Nit*_*mer 9

从您的代码示例看,您views可以使用以下界面表示:

interface IFuelUxRepeaterViews {
    [index: string]: {
        dropPagingCap: number;
        dataSource?: (options: any, cb: () => void) => void;
        list_infiniteScroll?: boolean;
        list_selectable?: string | boolean;   
    }
}
Run Code Online (Sandbox Code Playgroud)