Przejdź do treści
webtype.orgwebtype.orgtsconfig

    ↑↓ ruch · ⏎ otwórz · esc zamknij

    tsconfig

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

    main.ts

    import { Widget } from './widget'
    
    export { Widget }

    widget.ts

    export type Widget = { id: number }

    Kompiluje się czysto

    Z włączoną

    "isolatedModules": true

    main.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