什么使打字稿模块,打字稿模块? Toastr的例子

时间:2013-08-24 15:22:59

标签: node.js typescript toastr

我只是使用toastrjs进行了一些通知,我遇到了这个小问题。理想情况下,当您在nodejs中导入库时,您必须生成import语句,如下所示:

import http = require("http");

但是,当我使用toastr尝试此操作时,即使包含引用路径,也会出现错误。所以,像这样:

///<reference path='toastr.d.ts' />
import toastr = require("./toastr");

我收到此错误:

error TS2071: Unable to resolve external module '"./toastr.js"'.
error TS2072: Module cannot be aliased to a non-module type.    

toastrhttp等常规节点模块的区别如何?

更新1

我尝试用jQuery做同样的事情但是我有同样的问题,这是否意味着这不适用于设计为客户端的框架?

1 个答案:

答案 0 :(得分:6)

以下声明定义将创建一个可以通过amd / commonjs导入的模块:

declare module "jquery"{
    export var jQuery: JQueryStatic;
}

然后你可以这样做:

import jquery = require("jquery");

您可以在此下划线定义中看到此类定义:https://github.com/borisyankov/DefinitelyTyped/blob/master/underscore/underscore.d.ts#L2853

或node.d.ts: https://github.com/borisyankov/DefinitelyTyped/blob/master/node/node.d.ts#L203

然而,并非DT上的所有文件都具有此定义。由于它很容易自行添加,您可以随意命名这些模块(在AMD配置中http://www.youtube.com/watch?v=4AGQpv0MKsA