Comment puis-je empêcher le message d'erreur “l'Indice de signature de type d'objet a implicitement un "tout" type” lors de la compilation de texte dactylographié avec noImplicitAny indicateur activé?

J'ai toujours compiler Tapuscrit avec le drapeau --noImplicitAny. Cela a du sens que je veux que mon vérification de type à être aussi serrée que possible.

Mon problème est que, avec le code suivant, je reçois l'erreur 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];

Important à noter est que l'idée est que la variable clé qui vient de quelque part d'autre dans l'application et peut être l'une des clés de l'objet.

J'ai essayé explicitement le casting du type:

let secondValue: string = <string>someObject[key];

Ou est mon scénario tout simplement pas possible avec --noImplicitAny?

OriginalL'auteur Jasper Schulte | 2015-10-06