我已经四处寻找解决这个问题的办法了。他们都建议在你的tsconfig中添加"jsx": "react"。json文件。我已经做到了。另一个是添加“include:[]”,我也这样做过。然而,当我试图编辑.tsxfiles时,我仍然得到错误。下面是我的tsconfig文件。

{
    "compilerOptions": {
        "module": "commonjs",
        "target": "es5",
        "allowJs": true,
        "checkJs": false,
        "jsx": "react",
        "outDir": "./build",
        "rootDir": "./lib",
        "removeComments": true,
        "noEmit": true,
        "pretty": true,
        "skipLibCheck": true,
        "strict": true,
        "moduleResolution": "node",
        "esModuleInterop": true
    },
    "include": [
        "./lib/**/*"
    ],
    "exclude": [
        "node_modules"
    ]
}

任何建议都会很有帮助。我使用babel 7编译所有的代码与env, react和typescript预设。如果你们需要更多的文件来帮助调试,请告诉我。


当前回答

我只是和我的一个朋友一起解决了这个问题,他重新安装和配置了所有该死的东西来解决它。我们尝试了互联网上的所有修复(我甚至不得不自己解决这个问题,所以我真的很困惑为什么我们可以为他修复它)。

问题出在TypeScript的God扩展上。一旦它被禁用,随后被删除,问题就解决了。

当心假神!

其他回答

在我的情况下,我尝试了所有的tsconfig。json,项目属性对话框,重新启动IDE,检查安装的TypeScript版本等,它仍然有这个错误。找到开发人员,使项目添加条件属性的项目文件,这样TypeScriptJSXEmit没有定义在所有的配置(这混淆了项目属性对话框)。

这是从我的项目文件显示的问题摘录:

...
  <PropertyGroup Condition="'$(Configuration)' == 'QA'">
    <TypeScriptTarget>ES5</TypeScriptTarget>
    <TypeScriptJSXEmit>React</TypeScriptJSXEmit>
...

我得到了同样的错误,我只是想办法解决它。问题是有一个jsconfig。tsconfig. json文件导致TypeScript编译器忽略tsconfig. json文件。json文件。

要确定你是否有同样的问题,在你的IDE中(我使用VS Code),在你的编辑器中加载一个有错误的文件,然后打开命令面板,输入“TypeScript: Go To Project Configuration”。如果它打开jsconfig。json,然后删除该文件并重新启动IDE。如果它打开tsconfig。Json文件这次,你是黄金。

Create-react-app打破了常规。截至2022年5月

在tsconfig中,include只被设置为/src,更改为:

  "include": [
    "./src/**/*.ts"
  ]

我有一个monorepo, Webstorm自动选择了一个旧版本的TypeScript作为子包。修复方法是在页脚单击TypeScript X.X.X,然后选择Configure TypeScript…并选择正确的软件包,这对我来说在Webstorm 2021.1中是有效的

即使在运行npx tsc——jsx preserve时,我也得到了这个错误,所以——jsx是明确指定的。

在我的例子中,这是因为在tsconfig中有incremental: true。显然,在增量模式下,tsc可能会忽略——jsx设置,而使用以前构建的信息(其中——jsx仍然被禁用)。作为一种解决方案,我暂时转向增量编译,重新编译,然后重新启用它。也许删除构建构件也可以工作。