Actualicé mi proyecto para crear la aplicación de reacción 4.0, y estoy ralentizando el movimiento de mis archivos a TypeScript. Sé que con esta nueva versión no tienes que importar React de forma repetitiva desde 'react'. Sin embargo, dentro de todos mis archivos TS donde no estoy importando React recibo este error 'React' refers to a UMD global, but the current file is a module. Consider adding an import instead.ts(2686)
. Sé que puedo solucionarlo importando React, pero pensé que ya no era necesario. Además, ¿alguien podría explicar el significado de este error?
Mi archivo TSX básico
const Users = () => { return <>Teachers aka Users</>; }; export default Users;
Create React App admite la nueva transformación JSX lista para usar en la versión 4, pero si está utilizando una configuración personalizada, se necesita lo siguiente para eliminar el error de TypeScript al escribir jsx
sin import React from 'react'
:
typescript
de al menos la versión 4.1react
y react-dom
de al menos la versión 17tsconfig.json
debe tener una opción de compilador jsx
de react-jsx
o react-jsxdev
ejemplo:
// tsconfig.json { "compilerOptions": { ... "jsx": "react-jsx" ... }, }
La documentación de TypeScript para su soporte de React 17 JSX Factories se puede encontrar aquí
Este mensaje de error proviene del compilador de TypeScript. La nueva transformación jsx de React 17 no se admite actualmente en Typescript 4.0 y se admitirá en 4.1.
agregando
import React from 'react'
soluciona este problema