在TypeScript中导入节点模块

如何导入驻留在TypeScript的node_modules文件夹中的节点模块?

当我尝试编译下面一段TypeScript代码时,出现错误消息( 名称“async”在当前作用域中不存在 ):

// Converted from: var async = require('async'); import async = module('async'); 

您需要创build一个定义文件并包含这个:

 module "async" {} 

然后在TypeScript代码中添加对此定义文件的引用

 ///<reference path='definition-file.d.ts' /> import async = module('async'); 

typescript中的标准“import blah = require('x')”语义不能用于节点模块。

解决这个问题的最简单的方法就是明确地定义和接口并使用require,而不是import:

 // 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"