Saltar al contenido
webtype.orgwebtype.orgtsconfig

    ↑↓ mover · ⏎ abrir · esc cerrar

    tsconfig

    erasableSyntaxOnly

    Solo las partes que se borran

    Prohíbe las construcciones de TypeScript que emiten código en ejecución: enums, namespaces, propiedades de parámetro y campos de clase con `declare`.

    Desde
    TypeScript 5.8
    strict
    Fuera de strict
    En tu tsconfig
    "erasableSyntaxOnly": true

    El mismo fragmento las dos veces. Solo cambió la opción.

    Con ella apagada

    "erasableSyntaxOnly": false
    export enum Level {
      Low,
      High,
    }

    Compila limpio

    Con ella encendida

    "erasableSyntaxOnly": true
    export enum Level {
      Low,
      High,
    }

    Emite TS1294

    Por qué al compilador le importa

    La mayor parte de TypeScript es anotación: la borras y te queda el JavaScript. Un puñado de características no lo son, y son la razón de que a un archivo no se le puedan quitar los tipos sin más. Node, Deno y los navegadores que ejecutan TypeScript directamente toman la vía del borrado, así que esta bandera te dice en tiempo de compilación si tu código pasa por ella, en vez de descubrirlo cuando alguien lo intente.

    Conclusión

    Una unión de literales de cadena hace lo que hacía un enum, y se borra.

    Adónde ir después

    22 opciones