5

如何导入位于 TypeScript 的 node_modules 文件夹中的节点模块?

当我尝试编译以下 TypeScript 代码时,我收到一条错误消息(名称 ''async'' 在当前范围内不存在):

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

3 回答 3

1

您需要创建一个定义文件并包含以下内容:

module "async" {}

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

///<reference path='definition-file.d.ts' />

import async = module('async');
于 2012-11-14T15:26:38.393 回答
1

打字稿中的标准“import blah = 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;
于 2014-05-15T05:43:51.483 回答
1
npm install --save-dev @types/async
npm install --save async

和语法:

import * as async from "async"
于 2017-08-28T05:01:41.983 回答