isolatedModules
Un archivo cada vez
Rechaza las construcciones que no pueden compilarse bien sin mirar otros archivos, que es como compila todo empaquetador rápido.
- Desde
- TypeScript 1.5
- strict
- Fuera de strict
- En tu tsconfig
"isolatedModules": true- Compilado con
"module": "esnext""moduleResolution": "bundler"
El mismo fragmento las dos veces. Solo cambió la opción.
Con ella apagada
"isolatedModules": falsemain.ts
import { Widget } from './widget' export { Widget }
widget.ts
export type Widget = { id: number }
Compila limpio
Con ella encendida
"isolatedModules": truemain.ts
import { Widget } from './widget' export { Widget }
widget.ts
export type Widget = { id: number }
Emite TS1205
Por qué al compilador le importa
esbuild, swc, Babel y todo servidor de desarrollo construido sobre ellos transforman un archivo cada vez, sin información de tipos. Reexportar un nombre sin saber si es un tipo o un valor les resulta indecidible, así que o adivinan o se rompen. Activarla hace que `tsc` rechace justo el código que esas herramientas no pueden manejar, y la compilación deja de contradecir a lo que de verdad produce tu salida.
Conclusión
Si un empaquetador produce tu JavaScript, esta bandera hace que `tsc` esté de acuerdo con él.
Adónde ir después
22 opciones

