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": falseexport enum Level {
Low,
High,
}Compila limpio
Con ella encendida
"erasableSyntaxOnly": trueexport 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

