Tslint: no-switch-case-fall-through wird bei verschachtelten switch-Anweisungen geworfen, bei denen alle Fälle von innerem switch return-Anweisungen haben

Erstellt am 2. Sept. 2016  ·  3Kommentare  ·  Quelle: palantir/tslint

Fehlerbericht

  • TSLint-Version : 3.2.0
  • TypeScript-Version : 1.8.10
  • Ausführen von TSLint über : Node.js-API

    TypeScript-Code wird linted

function foo (a: number, b: number): number {
    switch (a) {
        case 1:
            switch (b) {
                case 2:
                    return 1;
                default:
                    return 2;
            }
        default:
            return 3;
    }
}

mit tslint.json Konfiguration:

(include if relevant)

Tatsächliches Verhalten

Wirft no-switch-case-fall-through an der Linie vor dem Standardfall der äußeren Schleife.

Erwartetes Verhalten

Kein Fehler.

P2 Fixed Bug

Hilfreichster Kommentar

Es muss nicht einmal verschachtelt sein, um zu werfen.

function(a: number, b:number): void {
    switch (a) {
        case 1: {
            return;
        } // Throws
        case 2:
            return;
        default:
            return;
    }
}

Alle 3 Kommentare

Gleiches für

function(a: number, b:number): void {
    switch (a) {
        case 1:
            if (b > 10) {
                return;
            } else {
                return;
            }
        case 2:
            return;
        default:
            return;
    }
}

Es muss nicht einmal verschachtelt sein, um zu werfen.

function(a: number, b:number): void {
    switch (a) {
        case 1: {
            return;
        } // Throws
        case 2:
            return;
        default:
            return;
    }
}

Das gleiche hier - no-switch-case-fall-through erkennt break/return innerhalb von Groß-/Kleinschreibungsblöcken case ... { ... } .

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen