Zawsze kompiluję Typescript z flagą --noImplicitAny. Ma to sens, ponieważ chcę, aby sprawdzanie mojego typu było jak najściślejsze.
Mój problem polega na tym, że następujący kod powoduje błąd 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];
Należy zauważyć, że idea polega na tym, że zmienna klucza pochodzi z innego miejsca w aplikacji i może być dowolnym kluczem w obiekcie.
Próbowałem jawnie rzutować ten typ przez:
let secondValue: string = <string>someObject[key];
A może mój scenariusz jest po prostu niemożliwy --noImplicitAny?