我更新了我的项目来创建react应用程序4.0,我正在缓慢地移动我的文件到TypeScript。我知道有了这个新版本,你不必重复地从“React”导入React。然而,在我没有导入React的所有TS文件中,我收到了这个错误:
'React'指的是一个UMD全局,但当前文件是一个模块。
考虑添加一个导入来代替。ts(2686) '
我知道我可以通过导入React来修复它,但我认为这已经不再需要了。另外,有人能解释一下这个错误的含义吗?
我的基本TSX文件
const Users = () => {
return <>Teachers aka Users</>;
};
export default Users;
Create React App在版本4中支持新的JSX转换,但如果你使用的是自定义设置,那么在编写JSX而没有从' React '中导入React时,需要以下步骤来删除TypeScript错误:
至少4.1版本的Typescript
React和React -dom至少版本17
tsconfig。json必须有一个jsx的编译选项react-jsx或react-jsxdev
例子:
// tsconfig.json
{
"compilerOptions": {
...
"jsx": "react-jsx"
...
},
}
TypeScript支持React 17 JSX工厂的文档可以在这里找到
Create React App在版本4中支持新的JSX转换,但如果你使用的是自定义设置,那么在编写JSX而没有从' React '中导入React时,需要以下步骤来删除TypeScript错误:
至少4.1版本的Typescript
React和React -dom至少版本17
tsconfig。json必须有一个jsx的编译选项react-jsx或react-jsxdev
例子:
// tsconfig.json
{
"compilerOptions": {
...
"jsx": "react-jsx"
...
},
}
TypeScript支持React 17 JSX工厂的文档可以在这里找到