2016-08-18 8 views
1

私が愛しているプラ​​グインの定義を追加したいと思います。タイプanyを使用せずにこれを可能にするためにタイプを定義する方法を知りたいと思います。私はこれを試みたが、オブジェクト{}、ではない配列[]辞書のインターフェースを宣言するには?

interface IFuelUxRepeaterViews { 
    [index: string]: IFuelUxRepeaterParametersBase | IFuelUxRepeaterListParameter | IFuelUxRepeaterTumbnailParameter | IFuelUxRepeaterAllParameter; 
} 

除くライブラリわからない。

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

私はこのようなプロパティを使用しますこのJavaScript型の宣言の名前を付ける方法。あなたのコードの例から

+0

それは辞書やマップです。 http://stackoverflow.com/q/15877362/746347、http://stackoverflow.com/q/30019542/746347を参照してください。あなたの定義はうまくいくはずです。 – mixel

+1

viewsプロパティを 'views:IFuelUxRepeaterViews'として定義します。 – mixel

答えて

4

それはあなたのように思えるviews次のインタフェースを使用して表すことができます。

interface IFuelUxRepeaterViews { 
    [index: string]: { 
     dropPagingCap: number; 
     dataSource?: (options: any, cb:() => void) => void; 
     list_infiniteScroll?: boolean; 
     list_selectable?: string | boolean; 
    } 
} 
+0

タンク、それは私が使っているもののようなものです、そのアイグは複数の可能なタイプであり、私はそれをすべてのパラメータで置き換えました。 – Benoit

0
interface IFuelUxRepeaterParametersBase { 
    dropPagingCap: number, 
    list_selectable: boolean | string 
} 

interface IFuelUxRepeaterTumbnailParameter extends IFuelUxRepeaterParametersBase { 
    list_infiniteScroll: boolean, 
} 

interface IFuelUxRepeaterListParameter extends IFuelUxRepeaterParametersBase { 
    dataSource: (x: any, y: any) => any, 
} 

interface IFuelUxRepeaterViews { 
    [index: string]: IFuelUxRepeaterParametersBase | IFuelUxRepeaterListParameter | IFuelUxRepeaterTumbnailParameter ; 
} 


let views: IFuelUxRepeaterViews = { 
    'list.view1': { 
     dropPagingCap: 20, 
     list_infiniteScroll: true, 
     list_selectable: 'multi' 
    }, 
    'list.view2': { 
     dataSource: (options, callback) => { }, 
     dropPagingCap: 30, 
     list_selectable: true 
    } 
} 
関連する問題