Ответ 1
Используйте строчную string
для типа MyObject._id
У меня есть большое количество js-кода, в котором используется несколько ассикативных массивов, которые позволяют очень быстрый доступ к объектам. Поэтому я попытался перенести этот код и не смог. Так что я не очень хорошо понимаю TS.
Я охотился за ответом на этот вопрос и нашел предложения по созданию интерфейса и т.д., Но это немного похоже на трек.
Таким образом, казалось очевидным:
class Foo {
allObjects: MyObject[];
constructor() {
this.allObjects = [];
}
}
где MyObject - упрощенный:
class MyObject {
_id: String;
public getId(): String {
return this._id;
}
}
И я считаю, что:
myObjectInstance: MyObject;
fooInstance.allObjects[myObjectInstance.getId()] = myObjectInstance;
было бы прекрасно... YET Я вижу прекрасную ошибку TS2342 (параметр выражения индекса должен иметь тип "строка", "число" или "любой"), что не имеет для меня никакого смысла, поскольку getId() является "строкой",, Кажется, это не должно быть так сложно. Поэтому ваша помощь будет очень признательна...
Используйте строчную string
для типа MyObject._id