インデックス可能なインターフェイスを実装するにはどうすればよいですか。
interface fooInterface{
// indexable
[index:string]:number;
[index:number]:number;
}
class Foo implements fooInterface{
// What goes here?
}
インデックス可能なインターフェイスを実装するにはどうすればよいですか。
interface fooInterface{
// indexable
[index:string]:number;
[index:number]:number;
}
class Foo implements fooInterface{
// What goes here?
}
クラス定義で実装するのではなく、アドレス指定によってのみ実装するinstance[index]
ため、 TypeScript クラスではfooInterface
使用できませんが、オブジェクトの予想される構造を記述するために使用できます。implements
var foo: fooInterface = {};
インデックス可能なオブジェクトの記述
JavaScript の一般的なパターンは、一連の文字列から一連の値にマップする方法としてオブジェクト ({} など) を使用することです。これらの値が同じ型の場合、インターフェイスを使用して、オブジェクトへのインデックス付けが常に特定の型 (この場合は Widget) の値を生成することを記述することができます。
interface WidgetMap {
[name: string]: Widget;
}
var map: WidgetMap = {};
map['gear'] = new GearWidget();
var w = map['gear']; // w is inferred to type Widget
引用とウィジェットの例: http://blogs.msdn.com/b/typescript/archive/2013/01/24/interfaces-walkthrough.aspx