Tslint: no-switch-case-fall-through lanzado en declaraciones de conmutador anidadas donde todos los casos de conmutador interno tienen declaraciones de retorno

Creado en 2 sept. 2016  ·  3Comentarios  ·  Fuente: palantir/tslint

Informe de error

  • Versión de TSLint : 3.2.0
  • Versión de TypeScript : 1.8.10
  • Ejecutando TSLint a través de : API Node.js

    El código de TypeScript está entretejido

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

con tslint.json configuración:

(include if relevant)

Comportamiento real

Lanza no-switch-case-fall-through en la línea antes del caso predeterminado del bucle exterior.

Comportamiento esperado

No hay error.

P2 Fixed Bug

Comentario más útil

Ni siquiera necesita estar anidado para lanzarlo.

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

Todos 3 comentarios

Igual por

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

Ni siquiera necesita estar anidado para lanzarlo.

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

Lo mismo aquí: no-switch-case-fall-through no reconoce break/return dentro de los bloques de caja case ... { ... } .

¿Fue útil esta página
0 / 5 - 0 calificaciones