Saltar al contenido
webtype.orgwebtype.orgtsconfig

    ↑↓ mover · ⏎ abrir · esc cerrar

    tsconfig

    noUncheckedSideEffectImports

    Los imports por efecto secundario también se comprueban

    `import "./styles.css"` nunca se comprobaba que resolviera, así que una errata en uno era invisible.

    Desde
    TypeScript 5.6
    strict
    Fuera de strict
    En tu tsconfig
    "noUncheckedSideEffectImports": true
    Compilado con
    "module": "esnext""moduleResolution": "bundler"

    El mismo fragmento las dos veces. Solo cambió la opción.

    Con ella apagada

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

    Compila limpio

    Con ella encendida

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

    Emite TS2882

    Por qué al compilador le importa

    La exención existía porque estos imports suelen nombrar algo que el compilador no tiene por qué entender —una hoja de estilos, una imagen, un polyfill— y dar error en todos sería inútil. El coste era que un archivo renombrado o borrado tras un import por efecto secundario fallaba en ejecución, en la única forma de import sin enlace que atrape el fallo. La bandera activa la comprobación, y una declaración con comodín es como eximes los tipos de archivo que de verdad quieres saltarte.

    Conclusión

    Declara `*.css` una vez y la comprobación deja de ser ruido y empieza a servir.

    Adónde ir después

    22 opciones