我只是使用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.
toastr
与http
等常规节点模块的区别如何?
我尝试用jQuery
做同样的事情但是我有同样的问题,这是否意味着这不适用于设计为客户端的框架?
答案 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)