可以说我正在使用--module AMD
Typescript获得AMD模块支持并使用requirejs
。现在,使用jquery.ts.d
来自DefinetelyTyped的示例,我提出了以下最小示例:
/// <reference path="../../typings/jquery/jquery.d.ts" />
import $ = require("jquery");
export class Greeter
{
sayHello() {
$('#mydiv').text('hello world');
}
}
可以清楚地看到,我必须jQuery
两次引用:一次通过该///<reference ... />
语句,一次通过该import jquery = require("jquery")
语句。
现在,如果我省略该///<reference ... />
部分,则打字稿编译器tsc
将抱怨未知$
变量。另一方面,如果我省略了该import
语句,则编译将起作用,但在运行时jQuery
将不包括在内(因为它不在已编译源代码中的必需组件列表中)。
因此,我看到的唯一方法是始终同时包含这两个语句,这对我来说很不对劲,因为我在重复自己。我是“期望的方式”(TM),还是我在这里缺少什么?
我建议添加一个vendor.d.ts
合并所有外部定义的文件,例如:
/// <reference path="./jquery/jquery.d.ts" />
/// <reference path="./other/other.d.ts" />
然后,您仅参考vendor.d.ts
:
/// <reference path="../../typings/vendor.d.ts" />
import $ = require("jquery");
顺便说一句,如果您使用的是tsd https://github.com/DefinitelyTyped/tsd,它将tsd.d.ts
为您创建一个文件,vendor.d.ts
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句