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": falseimport './styles.css' export const ok = 1
Kompiluje się czysto
Z włączoną
"noUncheckedSideEffectImports": trueimport './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

