TypeScriptのnode_modulesフォルダーにあるノードモジュールをインポートするにはどうすればよいですか?
次のTypeScriptコードをコンパイルしようとすると、エラーメッセージ(「async」という名前は現在のスコープに存在しません)が表示されます。
// Converted from: var async = require('async');
import async = module('async');
TypeScriptのnode_modulesフォルダーにあるノードモジュールをインポートするにはどうすればよいですか?
次のTypeScriptコードをコンパイルしようとすると、エラーメッセージ(「async」という名前は現在のスコープに存在しません)が表示されます。
// Converted from: var async = require('async');
import async = module('async');
定義ファイルを作成し、これを含める必要があります。
module "async" {}
次に、TypeScriptコードにこの定義ファイルへの参照を追加します
///<reference path='definition-file.d.ts' />
import async = module('async');
タイプスクリプトフラットアウトの標準の「importblah=require('x')」セマンティクスは、ノードモジュールでは機能しません。
これを回避する最も簡単な方法は、インポートではなく、requireを定義してインターフェースし、明示的に使用することです。
// You can put this in an external blah.d file if you like;
// remember, interfaces do not emit any code when compiled.
interface qOrm {
blah:any;
}
declare var require:any;
var qOrm:qOrm = require("../node_modules/q-orm/lib/q-orm");
var x = qOrm.blah;
npm install --save-dev @types/async
npm install --save async
そして構文:
import * as async from "async"