noFallthroughCasesInSwitch
Un break olvidado, detectado
Marca un `case` que hace algo y luego cae en el siguiente, permitiendo aún la caída vacía deliberada.
- Desde
- TypeScript 1.8
- strict
- Fuera de strict
- En tu tsconfig
"noFallthroughCasesInSwitch": true
El mismo fragmento las dos veces. Solo cambió la opción.
Con ella apagada
"noFallthroughCasesInSwitch": falseexport function pick(n: 1 | 2): string { switch (n) { case 1: const label = 'one' case 2: return 'two' } }
Compila limpio
Con ella encendida
"noFallthroughCasesInSwitch": trueexport function pick(n: 1 | 2): string { switch (n) { case 1: const label = 'one' case 2: return 'two' } }
Emite TS7029
Por qué al compilador le importa
Los casos vacíos apilados son un idioma real y la comprobación lo sabe: solo se informa de una cláusula con sentencias dentro, así que `case 1: case 2: return x` sigue siendo legal. Esa distinción es lo que la hace usable: una comprobación que prohibiera toda caída se desactivaría en una semana, y una comprobación que nadie ejecuta no atrapa nada.
Conclusión
La caída vacía sigue siendo legal, y es la única razón por la que esta bandera sobrevive en un proyecto real.
Adónde ir después
22 opciones

