Я завжди компілюю 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?