2017-06-06 12 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

私が入力をアンインストールすると、私のプロジェクトは問題なくコンパイルされます。

エラーメッセージごとに入力内容が正しくないように見えます。それを固定するのは面倒です。任意のヒント?

ここ

NodeRequireがRequire.jsの賛成でバイパスする必要がNodeRequire(インターフェース)のように思えるindex.d.tsのコードの失敗ラインがですか?

これは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

'' exclude ':["node_modules"] 'をあなたの' tsconfig.json'に追加しようとしましたか? – Saravana

答えて

0

最後に根本原因が見つかりました.Nodeのindex.d.tsファイルがRequireのindex.d.tsファイルと競合し、両方ともrequireという名前の変数が宣言されていました。私がそれを見つけたのは、名前を変更してnrequireのすべてのインスタンスをプロジェクトから検索することでした。多くのソリューションがあります。1)変数の名前を変更します(npmのインストールまたはアップデート2で一掃されます)。TypeScriptでは--typesオプションを使用して、どちらか一方を使用するか両方を使用することはできません。 3)ノードの入力を取り除くだけです。

関連する問題