allowUnusedLabels
Una etiqueta a la que nadie salta
Una etiqueta sin usar casi nunca es una etiqueta: es un objeto literal o una anotación de tipo que se interpretó como tal.
- Desde
- TypeScript 1.8
- strict
- Fuera de strict
- En tu tsconfig
"allowUnusedLabels": false
El mismo fragmento las dos veces. Solo cambió la opción.
Con ella apagada
"allowUnusedLabels": trueexport function run() { outer: for (const x of [1]) { return x } return 0 }
Compila limpio
Con ella encendida
"allowUnusedLabels": falseexport function run() { outer: for (const x of [1]) { return x } return 0 }
Emite TS7028
Por qué al compilador le importa
Las etiquetas son lo bastante raras en JavaScript moderno como para que una sin usar sea mejor prueba de una errata que de un bucle. `{ foo: 1 }` escrito donde se esperaba una sentencia se interpreta como una expresión etiquetada y no como un objeto, y un `x: string` perdido en el cuerpo de una función hace lo mismo: ambos compilan en silencio y no hacen nada. Como en `allowUnreachableCode`, el ajuste útil es el `false` explícito y no el valor por defecto sin definir.
Conclusión
Si no querías escribir una etiqueta, esta es la bandera que te dice que la escribiste.
Adónde ir después
22 opciones

