2017-06-06 46 views
1

我已經搜索了這個問題的堆棧溢出,但我仍然不清楚爲什麼發生這種情況/如何解決。TS2403:隨後的變量聲明必須具有相同的類型。 NPM安裝後

我想節點分型在我的打字稿的項目,所以我進入這個命令:

npm install @types/node --save 

這就造成:

c:/xyz/node_modules/@types/node/index.d.ts(89,13) 
error TS2403: Subsequent variable declarations must have the same type. 
Variable 'require' must be of type 'Require', but here has type 'NodeRequire'. 

我的機器有節點7.0.3版 安裝的類型是爲版本+ @類型/節點@ 7.0.28

如果我刪除卸載typings我的項目編譯沒有問題。

它看起來好像每個錯誤信息的打字內容都不正確!修復它是凌亂的。有小費嗎?

這裏是代碼index.d.ts的失敗線NodeRequire

好像NodeRequire(接口)需要支持Require.js的被繞過?

這是TSConfig文件:

{ 
    "compilerOptions": { 
     "module": "amd", 
     "moduleResolution": "node", 
     "target": "es5", 
     "noImplicitAny": false, 
     "jsx": "react", 
     "sourceMap": false, 
     "baseUrl": ".", 
     "paths": { 
      "OfficeFabric/*": [ 
       "node_modules/office-ui-fabric-react/lib-amd/*" 
      ] 
     } 
    } 
} 

我試圖排除建議以下沒有工作。 Github說,如果模塊分辨率是NODE,那麼排除不會起作用。

+1

您是否曾嘗試在您的'tsconfig.json'中添加'「exclude」:[「node_modules」]'? – Saravana

回答

0

確定終於找到了根本原因:Node的index.d.ts文件與Require的index.d.ts文件衝突,都聲明瞭一個名爲require的變量。我發現它的方式是重命名需求,然後在項目中搜索nrequire的所有實例。有很多解決方案,1)重命名變量(將在npm安裝或更新2中被刪除)在TypeScript中,使用--types選項來使用其中一個,但不能同時使用兩個。 3)刪除節點類型。

相關問題