Przejdź do treści
webtype.orgwebtype.orgtsconfig

    ↑↓ ruch · ⏎ otwórz · esc zamknij

    tsconfig

    noUncheckedSideEffectImports

    Importy dla efektu ubocznego też są sprawdzane

    `import "./styles.css"` nigdy nie było sprawdzane pod kątem rozwiązania, więc literówka w nim była niewidoczna.

    Od
    TypeScript 5.6
    strict
    Poza strict
    W twoim tsconfigu
    "noUncheckedSideEffectImports": true
    Skompilowane z
    "module": "esnext""moduleResolution": "bundler"

    Ten sam fragment za każdym razem. Zmieniła się tylko opcja.

    Z wyłączoną

    "noUncheckedSideEffectImports": false
    import './styles.css'
    
    export const ok = 1

    Kompiluje się czysto

    Z włączoną

    "noUncheckedSideEffectImports": true
    import './styles.css'
    
    export const ok = 1

    Zgłasza TS2882

    Dlaczego kompilator się tym przejmuje

    Wyjątek istniał, bo te importy zwykle nazywają coś, czego kompilator nie ma prawa rozumieć — arkusz stylów, obrazek, polyfill — a zgłaszanie błędu dla wszystkich byłoby bezużyteczne. Kosztem było to, że zmieniony lub usunięty plik za importem dla efektu ubocznego psuł się dopiero w czasie wykonania — w jedynej formie importu, w której nie ma wiązania, które wychwyciłoby pomyłkę. Flaga włącza kontrolę, a deklaracja z wieloznacznikiem to sposób na zwolnienie tych typów plików, które naprawdę chcesz pominąć.

    Wniosek

    Zadeklaruj `*.css` raz, a kontrola przestaje być szumem i zaczyna być użyteczna.

    Gdzie iść dalej

    Opcji: 22