错误TS2602:JSX元素隐式具有类型' any'因为全球类型' JSX.Element'不存在

时间:2016-06-07 08:17:46

标签: reactjs typescript typescript-typings

即使我已经安装了&参考了打字库'反应'像这样

/// <reference path="../../../typings/browser.d.ts" />

我仍然收到以下错误: enter image description here

我还应该安装另一个打字库吗?

5 个答案:

答案 0 :(得分:18)

Typings中有两种版本的React。我在使用typings install react并使用noImplicitAny时遇到过此问题。

我通过安装全球版本解决了这个问题:typings install dt~react --global typings search react results

答案 1 :(得分:0)

将此配置放在tsconfig.json文件中,以便ts服务器无法识别该类型的错误

{
    "compilerOptions": {
        "outDir": "build/dist",
        "module": "commonjs",
        "target": "es5",
        "lib": ["es6", "dom"],
        "sourceMap": true,
        "allowJs": true,
        "jsx": "react",
        "moduleResolution": "node",
        "rootDir": "src",
        "noImplicitReturns": true,
        "noImplicitThis": true,
        "noImplicitAny": true,
        "strictNullChecks": true
    },
    "exclude": [
        "node_modules",
        "build",
        "scripts",
        "acceptance-tests",
        "webpack",
        "jest",
        "src/setupTests.ts"
    ],
    "types": [
        "typePatches"
    ]
}

答案 2 :(得分:0)

我通过安装react类型定义解决了这个问题。

尝试运行yarn add @types/react

答案 3 :(得分:0)

我遇到了同样的问题,将 tsconfig.json 更新为以下代码并重新启动对我有用的服务器。

{
  "compilerOptions": {
    "target": "ES2016",
    "declaration": false,
    "module": "commonjs",
    "moduleResolution": "node",
    "noImplicitAny": false,
    "allowJs": false,
    "preserveConstEnums": true,
    "removeComments": true,
    "sourceMap": true,
    "typeRoots": [
      "./node_modules/@types"
    ],
    "keyofStringsOnly": true,
    "lib": ["es2015", "es2017", "dom"],
    "experimentalDecorators": true,
    "emitDecoratorMetadata": true,
    "jsx": "react"
  }
}

答案 4 :(得分:-1)

handbook起,React必须有大写字母。问题中的代码显然没有。