2016-03-18 13 views
2

nodejsモジュールのインポートには少し問題があります。この構文はうまく機能しているHTTPモジュールの場合 :TypeScriptでインポートすると「モジュールが見つかりません」

import * as http from "http"; 

しかし、私は 'mysql2' で同じことをしようモジュールをNode.jsの:

import * as database from "mysql2"; 

私は私にエラーを与えました

Cannot find module 'mysql2' 

そして、その行のコンパイルを拒否してください。 は私も(理由は分からない)、このような構文を試してみました:

import {database} from 'mysql2'; 

をしかし、私はこのように書くだけではエラーがない:私が設定したtsconfig.jsonで

let database = require('mysql2'); 

は:

"module": "commonjs", 
"moduleResolution": "node", 

そしてもちろん、私はすでにプロジェクトフォルダにNPMてモジュールをインストールしました:

を10

なぜ私の質問は、インポートがうまくいかず、Visual Studioコードにエラーがあるのですか?

答えて

1

mysql2のtypescript定義が不足しているため、インポートが機能しないと思います。あなたはあなたのtypings.json(またはtsd.json)を投稿していませんが、あなたが定義をインポートしたnodejについては推測しますが、mysql2ではそうではないので、 'import from'構文を使用して 'http'をインポートし、mysql2ではプレーンそれをインポートするにはjavascript nodejs 'が必要です。

+0

それはすべて、感謝を説明する! 以前は「mysql」と同じ問題がありましたが、私はDefinetlyTypedをインストールしましたが、エラーはなくなりました。 「mysql」のためのd.tsを「mysql2」に編集しました。(それには下位互換性のあるAPIがあります。 –