Saltar al contenido
webtype.orgwebtype.orgtsconfig

    ↑↓ mover · ⏎ abrir · esc cerrar

    tsconfig

    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": true
    export function run() {
      outer: for (const x of [1]) {
        return x
      }
      return 0
    }

    Compila limpio

    Con ella encendida

    "allowUnusedLabels": false
    export 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