tslint se plaindre “des déclarations doit être filtré avec une instruction if” lors de l'utilisation de l'interrupteur

Permet de dire que j'ai la méthode suivante:

getErrorMessage(state: any, thingName?: string) {
    const thing: string = state.path || thingName;
    const messages: string[] = [];
    if (state.errors) {
        for (const errorName in state.errors) {
            switch (errorName) {
                case 'required':
                    messages.push(`You must enter a ${thing}`);
                    break;
                case 'minlength':
                    messages.push(`A ${thing} must be at least ${state.errors['minlength'].requiredLength}characters`);
                    break;
                case 'pattern':
                    messages.push(`The ${thing} contains illegal characters`);
                    break;
                case 'validateCardNumberWithAlgo':
                    messages.push(`Card doesnt pass algo`);
                    break;
            }
        }
    }
    return messages;
}

quand je lance

ng lint

J'obtiens l'erreur suivante :

pour ( ... ... ) les déclarations doivent être filtrées avec une instruction if

Avoir un look similaire à celui de question je ne pense pas que la réponse serait applicable à ma situation. Après tout, l'instruction switch se trouve dans la catégorie de si-sinon-si l'échelle.

tslint devraient envisager d'instruction switch comme une forme de déclaration, mais si il ne l'est pas?!

utiliser si d'autre à la place de l'interrupteur?
Voulez-vous suggérer la même chose si j'avais 100 conditions à vérifier?
En fait, je peux vous suggérer de refactoriser l'intérieur de la boucle en quelque chose d'autre. 🙂 Un appel de méthode, ou peut-être la carte sur les erreurs de la matrice de la création de la liste de messages d'erreur. 🙂
Double Possible de Ce qui ne l'JSLint erreur "corps de un pour dans doit être enveloppé dans une instruction if"?
Je pense que le point est que la règle dit qu'un if déclaration doit venir après le for...in, et une instruction switch peut être vu comme une sorte de if déclaration, pourtant, il ne permet pas de résoudre l'erreur.

OriginalL'auteur MHOOS | 2017-05-30