isolatedModules
Jeden plik naraz
Odrzuca konstrukcje, których nie da się poprawnie skompilować bez zaglądania do innych plików — a tak kompiluje każdy szybki bundler.
- Od
- TypeScript 1.5
- strict
- Poza strict
- W twoim tsconfigu
"isolatedModules": true- Skompilowane z
"module": "esnext""moduleResolution": "bundler"
Ten sam fragment za każdym razem. Zmieniła się tylko opcja.
Z wyłączoną
"isolatedModules": falsemain.ts
import { Widget } from './widget' export { Widget }
widget.ts
export type Widget = { id: number }
Kompiluje się czysto
Z włączoną
"isolatedModules": truemain.ts
import { Widget } from './widget' export { Widget }
widget.ts
export type Widget = { id: number }
Zgłasza TS1205
Dlaczego kompilator się tym przejmuje
esbuild, swc, Babel i każdy zbudowany na nich dev server przekształcają jeden plik naraz, bez żadnej informacji o typach. Re-eksport nazwy bez wiedzy, czy jest typem, czy wartością, jest dla nich nierozstrzygalny — więc albo zgadują, albo się psują. Włączenie tego sprawia, że `tsc` odrzuca dokładnie ten kod, z którym te narzędzia sobie nie radzą, i build przestaje się nie zgadzać z tym, co naprawdę produkuje twoje wyjście.
Wniosek
Jeśli twój JavaScript produkuje bundler, ta flaga sprawia, że `tsc` się z nim zgadza.
Gdzie iść dalej
Opcji: 22

