現在、TypeScriptのクラスにインデクサーを実装することは可能ですか?TypeScriptのクラスでインデクサーを実装する
class MyCollection {
[name: string]: MyType;
}
これはコンパイルされません。もちろん、インタフェースにインデクサを指定することはできますが、このタイプのメソッドとインデクサが必要なので、インタフェースでは十分ではありません。
ありがとうございました。
現在、TypeScriptのクラスにインデクサーを実装することは可能ですか?TypeScriptのクラスでインデクサーを実装する
class MyCollection {
[name: string]: MyType;
}
これはコンパイルされません。もちろん、インタフェースにインデクサを指定することはできますが、このタイプのメソッドとインデクサが必要なので、インタフェースでは十分ではありません。
ありがとうございました。
インデクサーを使用してクラスを実装することはできません。インターフェイスを作成することはできますが、そのインターフェイスをクラスで実装することはできません。それは、プレーンJavaScriptで実装することができ、あなたがインターフェイス上の機能だけでなく、インデクサーを指定することができます。
class MyType {
constructor(public someVal: string) {
}
}
interface MyCollection {
[name: string]: MyType;
}
var collection: MyCollection = {};
collection['First'] = new MyType('Val');
collection['Second'] = new MyType('Another');
var a = collection['First'];
alert(a.someVal);
はこれが答えを探している人のために古い質問です:今はインデックス付きプロパティを定義することが可能です以下のような:
var lookup : {[key:string]:AnyType};
キーの署名がいずれかの文字列であるか、または整数を参照する必要があります。
いいえ:http://typescript.codeplex.com/discussions/398379およびhttp://stackoverflow.com/questions/14791550/how-to-implement-array-signature-method-in-typescriptを参照してください。 – MiMo