除非提供了“--jsx”标志,否则不能使用 JSX

新手上路,请多包涵

我环顾四周寻找解决此问题的方法。他们都建议将 "jsx": "react" 添加到您的 tsconfig.json 文件中。我已经做到了。另一个是添加 "include: []" ,我也这样做了。但是,当我尝试编辑 .tsx 文件时,我仍然收到错误消息。下面是我的 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 预设的代码。如果你们需要更多文件来帮助调试,请告诉我。

原文由 AJDEV 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 2.2k
1 个回答

每次我运行 npm start 时,它都会覆盖我在 {jsx: ...}react-jsx 中配置的任何内容,以便在 React 中与 JS17 兼容。

 The following changes are being made to your tsconfig.json file:
  - compilerOptions.jsx must be react-jsx (to support the new JSX transform in React 17)

问题是 VSCode 使用旧版本的打字稿 (4.0.3),而项目附带的打字稿版本是 (4.1.2)。

以下对我有用:

  1. 转到命令面板 CTRL + Shift + P (或 + Shift + P 在 Mac 上)。
  2. 选择“TypeScript:选择 TypeScript 版本…”。
  3. 选择“使用工作区版本”。

VSCode 状态栏

VSCode 命令面板

TypeScript 工作区版本

PS:除非您在任何 .tsx 文件上,否则此选项不会显示(感谢 @awran5 的评论和收获)

原文由 Mahmoud 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进