我已经四处寻找解决这个问题的办法了。他们都建议在你的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预设。如果你们需要更多的文件来帮助调试,请告诉我。


当前回答

在我的例子中,问题是VSCode生成了一个空的tsconfig。Json文件,当然,它什么也没做。

我把这个添加到tsconfig。json from Typescript的React Page:

{
    "compilerOptions": {
        "outDir": "./dist/",
        "sourceMap": true,
        "noImplicitAny": true,
        "module": "commonjs",
        "target": "es6",
        "jsx": "react"
    }
}

...然后点击保存,VSCode从那里取出它。

编辑: 自从我最初发布这个答案以来,通用的tsconfig文件已经变得更广泛地可用。如果你想了解这些选项,我已经发布了一个更详细的版本作为主旨。

其他回答

对于正在阅读的读者,请转到tsconfig。将这一行从react-jsx改为react:

{
  "compilerOptions": {
    "jsx": "react"
  }
}

额外的好处:尝试将IDE TS版本设置为最新的(atm 4.2),在vscode CMD + SHIFT + P中更改它。

对我来说,重新启动IDE就是解决办法。重新启动后,弹出一个消息框,显示我没有安装任何typescript,你想安装typescript 3.3吗? 我安装了它,现在它工作得很好。请看这里的输出窗口

这是@basarat回答的后续,因为他部分解决了我的问题。我遇到的问题是错误TS6046:“——jsx”选项的参数必须是:“preserve”,“react-native”,“react”。我是这样解决的:

重新启动IDE 删除tsconfig.json 重新初始化您的tsconfig。使用' ' ' tsc——init````

也许第一步可以跳过,但我没有对此进行调查。

如果你在运行create-react-app with Typescript后看到这个问题,你可以通过添加“Typescript . bat”来解决这个问题。Tsdk ": "node_modules/typescript/lib"到.vscode/settings.json。

对于智能感知,如果你使用"jsx": "react-jsx",你需要切换你的工作空间来使用TS 4.1+

或者从视觉上看,只需转到蓝色任务栏并选择Typescript版本(可能是4.x。x something),然后选择“select TypeScript Version”。

然后选择“Use Workspace Version Version”,引用node_modules/typescript/lib

你可以创建一个。vscode/settings。Json文件在你的项目的根。在里面输入{"typescript。Tsdk ": "node_modules\\typescript\\lib"}你就可以开始了。

问题是vscode使用的是旧的Typescript版本。

在vscode上显示代码的图像