Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

514
Views
¿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 answers
Answer question

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 Report

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 Report

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 Report

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 Report

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!