我更新了我的项目来创建react应用程序4.0,我正在缓慢地移动我的文件到TypeScript。我知道有了这个新版本,你不必重复地从“React”导入React。然而,在我没有导入React的所有TS文件中,我收到了这个错误:

'React'指的是一个UMD全局,但当前文件是一个模块。 考虑添加一个导入来代替。ts(2686) '

我知道我可以通过导入React来修复它,但我认为这已经不再需要了。另外,有人能解释一下这个错误的含义吗?

我的基本TSX文件

const Users = () => {
    return <>Teachers aka Users</>;
};

export default Users;

当前回答

在VS Code中,我不得不重新启动typescript服务器。我在git分支之间切换了很多次,这个错误意外地发生在一个没有更改的文件中。没有其他更改可以触发此错误。重新加载后错误消失。

在VS Code中重载typescript服务器:

按Ctrl+Shift+P(在macOS上是Cmd+Shift+P)打开命令面板,输入restart,然后选择命令“TypeScript: restart TS server”。

其他回答

检查tsconfig.json文件

"compilerOptions": {
    ...
    "baseUrl": "src",
    ...
    "jsx": "react-jsx",
    ...
 },

在VS Code中重载typescript服务器:

按Ctrl+Shift+P(在macOS上是Cmd+Shift+P)打开命令面板,输入restart,然后选择命令“TypeScript: restart TS server”。

对于VSCode用户来说,简单地关闭和重新打开项目就可以解决我的问题。

对我来说,这和这一切都无关。

我用的是Visual Studio Code,打开的文件夹不是在有tsconfig的根目录下。Json文件,但在SRC文件夹内的一个级别。

解析错误:无法读取文件:C\MyProject\tsconfig.json.eslint

这间接导致'React'指的是UMD全局,但当前文件是一个模块

在项目级重新打开文件夹解决了这个问题。: \

在VS Code中,我不得不重新启动typescript服务器。我在git分支之间切换了很多次,这个错误意外地发生在一个没有更改的文件中。没有其他更改可以触发此错误。重新加载后错误消失。

在VS Code中重载typescript服务器:

按Ctrl+Shift+P(在macOS上是Cmd+Shift+P)打开命令面板,输入restart,然后选择命令“TypeScript: restart TS server”。

根据项目中使用的版本,这可能是所需的格式:

import * as React from "react"