【问题标题】:error TS2300: Duplicate identifier 'RequestInfo'错误 TS2300:重复标识符“RequestInfo”
【发布时间】:2018-11-09 14:15:45
【问题描述】:

我在一个 ReactXP 项目中工作,我必须使用 React Native native modules

所以我已将 react-native 类型作为开发依赖项包含在内。

我的项目现在无法编译,出现以下错误:

node_modules/@types/react-native/globals.d.ts(92,14): error TS2300: Duplicate identifier 'RequestInfo'.
node_modules/@types/react-native/index.d.ts(8751,11): error TS2451: Cannot redeclare block-scoped variable 'console'.
node_modules/@types/react-native/index.d.ts(8759,18): error TS2717: Subsequent property declarations must have the same type.  Property 'geolocation' must be of type 'Geolocation', but here has type 'GeolocationStatic'.
node_modules/@types/react-native/index.d.ts(8762,11): error TS2451: Cannot redeclare block-scoped variable 'navigator'.
node_modules/typescript/lib/lib.dom.d.ts(15764,13): error TS2451: Cannot redeclare block-scoped variable'navigator'.
node_modules/typescript/lib/lib.dom.d.ts(15940,13): error TS2451: Cannot redeclare block-scoped variable'console'.
node_modules/typescript/lib/lib.dom.d.ts(15997,6): error TS2300: Duplicate identifier 'RequestInfo'.
18:17:44 - Compilation complete. Watching for file changes.

以下是我的 package.json 文件:

"dependencies": {
        "react": "^16.4.0",
        "react-dom": "^16.3.1",
        "react-native": "^0.55.4",
        "react-native-windows": "^0.54.0",
        "reactxp": "^1.2.1"
    },
    "devDependencies": {
        "@types/react-native": "^0.55.16",
        "@types/webpack": "^4.1.3",
        "@types/node": "9.6.7",
        "@types/react-dom": "^16.0.5",
        "awesome-typescript-loader": "^5.0.0",
        "rnpm-plugin-windows": "^0.2.8",
        "source-map-loader": "^0.2.3",
        "ts-node": "^5.0.1",
        "tslint": "^5.9.1",
        "tslint-microsoft-contrib": "^5.0.3",
        "typescript": "^2.8.1",
        "webpack": "^4.5.0",
        "webpack-cli": "^2.0.13"
    }

和 tsconfig.json 文件

{
  "exclude": [
    "node_modules"
  ],
  "compilerOptions": {
    "declaration": false,
    "noResolve": false,
    "jsx": "react",
    "reactNamespace": "RX",
    "module": "commonjs",
    "target": "es5",
    "experimentalDecorators": true,
    "sourceMap": true,
    "noImplicitAny": true,
    "noImplicitReturns": true,
    "outDir": "./dist/",
    "types": [
      "lodash",
      "react",
      "react-dom"
    ],
    "lib": [
      "es6",
      "dom"
    ],
  },
  "include": [
    "./src/ts/**/*"
  ]
}

我不明白我做错了什么。

任何帮助表示赞赏。

【问题讨论】:

    标签: typescript react-native reactxp


    【解决方案1】:

    在 tsconfig.json 中添加"skipLibCheck": true

    参考:https://github.com/DefinitelyTyped/DefinitelyTyped/issues/16825

    【讨论】:

    • 这确实是正确的做法。我不得不退出 watch 模式并重新启动 tsc 才能看到变化。
    • 虽然这只是掩盖了问题。真正的解决方案是对于 DefinitiveTyped 的人来说,让他们的包的类型相互兼容。
    【解决方案2】:

    我在 tsConfig.js 中添加了 "skipLibCheck": true"allowSyntheticDefaultImports": true

    【讨论】:

      猜你喜欢
      • 2016-12-27
      • 1970-01-01
      • 2016-06-13
      • 2016-05-23
      • 2019-11-02
      • 2017-04-13
      • 2016-10-29
      • 2022-11-22
      • 1970-01-01
      相关资源
      最近更新 更多