Я всегда компилирую Typescript с флагом --noImplicitAny. Это имеет смысл, поскольку я хочу, чтобы мой тип проверки был как можно более плотным.
Моя проблема в том, что со следующим кодом я получаю сообщение об ошибке Index signature of object type implicitly has an 'any' type
:
interface ISomeObject {
firstKey: string;
secondKey: string;
thirdKey: string;
}
let someObject: ISomeObject = {
firstKey: 'firstValue',
secondKey: 'secondValue',
thirdKey: 'thirdValue'
};
let key: string = 'secondKey';
let secondValue: string = someObject[key];
Важно отметить, что идея состоит в том, что ключевая переменная поступает откуда-то еще в приложении и может быть любым из ключей в объекте.
Я пробовал явно лить тип:
let secondValue: string = <string>someObject[key];
Или мой сценарий невозможен с помощью --noImplicitAny
?