私のTypeScriptアプリケーションは、キーによるクイックルックアップのために文字列インデックス(別のオブジェクト)に格納されているデータセット(オブジェクト)があるパターンを頻繁に使用します。TypeScriptでこれを実装するのは簡単ですが、2つのインターフェイス定義(データオブジェクト用と文字列インデクサーオブジェクト用)が必要です。私のコードには、あまり価値のないこれらの文字列インデクサーインターフェイスが散らかっていることに気づき、より読みやすく保守しやすいコードを作成する方法を模索しています。
配列(数値インデクサー)でできるように、文字列インデクサー型の変数をインラインで宣言する方法はありますか?これが私がしていることと私がしたいことの例です:
interface MyObject {
foo: string;
bar: string;
}
// is there a way to not have to define this interface?
interface MyObjectByKey {
[index: string]: MyObject;
}
class Foo {
// this works: inline declaration of variable of type numeric indexer
myObjectsByIndex: MyObject[] = [];
// this works: variable of type string indexer, but requires extra interface
myObjectsByKey: MyObjectByKey = {};
// wish I could do something like this ... (can I?)
myObjectsByKeyWish: MyObject[index: string] = {};
}