Мое заявление TypeScript делает частое использование образца, где у меня есть ряд данных (объект), который сохранен в индексе строк (другой объект) для быстрого поиска ключом. Осуществление этого в TypeScript легко, но требует двух интерфейсных определений (для объекта данных, и для объекта индексатора последовательности). Я нахожу, что мой код становится замусоренным этими интерфейсами индексатора последовательности, которые не добавляют большую стоимость, и ищу способ иметь более удобочитаемый/ремонтируемый код.
Есть ли способ объявить переменную индексатора последовательности типа действующей, во многом как мы можем сделать со множеством (числовой индексатор)? Вот пример того, что я делаю, и что я хотел бы сделать:
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] = {};
}