Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

515
Vistas
¿Por qué se corrige el error --isolatedModules con cualquier importación?

En un proyecto mecanografiado de crear-reaccionar-aplicación, traté de escribir esto solo para probar algunas cosas rápidamente:

 // experiment.test.ts it('experiment', () => { console.log('test'); });

Pero me da el siguiente error, con it garabato rojo debajo:

Todos los archivos deben ser módulos cuando se proporciona el indicador '--isolatedModules'.

Sin embargo, si cambio el archivo a lo siguiente, aparentemente todo está bien (excepto por la importación no utilizada, por supuesto):

 // experiment.test.ts import { Component} from 'react'; // literally anything, don't even have to use it it('test', () => { console.log('test'); });

¿Por qué? ¿Que está sucediendo aquí? ¿Qué significa/hace realmente --isolatedModules ?

over 4 years ago · Santiago Trujillo
7 Respuestas
Responde la pregunta

0

La forma correcta es decirle a TypeScript lo que quiere. Si no desea módulos isolatedModules , cree tsconfig.json dentro de su directorio de test y agregue:

 { "extends": "../tsconfig.json", "compilerOptions": { "isolatedModules": false }, }

Agregar "isolatedModules": true a la configuración y luego engañar al verificador de TypeScript al agregar export {} me huele mal a código.

over 4 years ago · Santiago Trujillo Denunciar

0

Intentemos verificar módulos aislados. Cuando revisé Google, no hay un contexto directo de eso.

Básicamente significa que permite que Typescript compile módulos de forma aislada.

Pero proviene de Typescript y tiene algo que ver con Typescript que prefiere módulos sobre espacios de nombres.

Los módulos también dependen de un cargador de módulos (como CommonJs/Require.js) o un tiempo de ejecución que admite módulos ES. Los módulos brindan una mejor reutilización del código, un aislamiento más fuerte y un mejor soporte de herramientas para la agrupación.

Fuente 1

Al usar un proyecto typescript create-react-app, debe haber instalado typescript y ts-jest (o la aplicación create-react- debe manejar las dependencias en función de si expulsó la aplicación o no).

También ts-jest tiene información al respecto:

De manera predeterminada, ts-jest usa el compilador TypeScript en el contexto de un proyecto (el suyo), con funciones y verificación de tipo completas. Pero también se puede usar para compilar cada archivo por separado , lo que TypeScript llama un 'módulo aislado'. Eso es lo que hace la opción isolatedModules (que por defecto es falso).

Fuente 2

Tan pronto como use el comando de export , estará creando un módulo a partir de lo que se está exportando.

Si está utilizando ts-jest, puede agregar esta configuración sin afectar sus otros módulos, en los que consistirá la aplicación create-react.

 "ts-jest": { "isolatedModules": false }

Y echa un vistazo a la página de ts-jest (segunda fuente) para conocer los pros y los contras.

over 4 years ago · Santiago Trujillo Denunciar

0

¿Sigues teniendo errores a pesar de exportar cosas de ese "archivo de errores"?

  1. Check if you don't export same name that you already export in another file (conflicto)
  2. After your fix try to stop and start your npm/yarn runner (experimenté que no puede recuperarse incluso después de recargar la página, especialmente cuando tiene otro error en otro lugar)
over 4 years ago · Santiago Trujillo Denunciar

0

¿Qué tal si simplemente haces .eslintignore y agregas la carpeta de archivos donde necesitas ignorar de eslint para que no haya errores en ese error de --isolatedModules corregido por cualquier importación y puedes probar tus lógicas?

over 4 years ago · Santiago Trujillo Denunciar

0

Resolución de problemas, consulte el artículo https://blog.csdn.net/qingfeng812/article/details/120510673

 { "compilerOptions": { "target": "es5", "lib": [ "dom", "dom.iterable", "esnext" ], "allowJs": true, "skipLibCheck": true, "esModuleInterop": true, "allowSyntheticDefaultImports": true, "strict": true, "forceConsistentCasingInFileNames": true, "noFallthroughCasesInSwitch": true, "module": "esnext", "moduleResolution": "node", "resolveJsonModule": true, "isolatedModules": false, "noEmit": true, "jsx": "react-jsx" }, "include": [ "src" ] }
over 4 years ago · Santiago Trujillo Denunciar

0

Esto se debe a que aún no ha importado la función que desea probar. Una vez que hagas eso, el error desaparecerá. La respuesta aceptada explica por qué.

over 4 years ago · Santiago Trujillo Denunciar

0

Typescript trata los archivos sin importar/exportar como archivos de script heredados. Como tales archivos no son módulos y cualquier definición que tengan se fusiona en el espacio de nombres global. isolatedModules prohíbe tales archivos.

Agregar cualquier importación o exportación a un archivo lo convierte en un módulo y el error desaparece.

Además, export {} es una forma práctica de convertir un archivo en un módulo sin importar nada.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda