我一直在努力让它工作一整天,我在一个文件(a.ts)中有以下打字稿(0.9.1.1 版本):
/// <reference path="declarations/require.d.ts" />
/// <reference path="declarations/select2/select2.d.ts" />
/// <reference path="declarations/knockout.d.ts" />
/// <reference path="declarations/bootstrap/bootstrap.d.ts" />
/// <reference path="declarations/blockui/blockui.d.ts" />
/// <reference path="declarations/ObjectSerializer/ObjectSerializer.d.ts" />
import $ = require('jquery');
// ... code defining a class
我有一个来自 https://github.com/borisyankov/DefinitelyTyped/blob/master/jquery/jquery.d.ts 的声明/输入文件 jquery.d.ts
部分内容如下:
declare module "jquery" {
export = $;
}
末尾有一个错误行,在导出行上显示"预期模块"。
我在这里误解了什么还是什么?
我正在尝试使用打字稿作为AMD兼容(使用requirejs),但是jquery.d.ts行中的这一行破坏了它,并出现一个错误"预期的模块"。
我应该需要生成必要的
require(['require','exports','jquery'], function(require, exports, $) {
//....
});
应该是jquery.d.ts中的导出和import $ = require('jquery');
对吗?
最终目标是有一个require语句,确保在使用requirejs执行文件中的代码之前加载jquery。
试试
import jquery = require('jquery');
打字稿的怪异....
遇到问题,并在我的工作计算机上提示了该问题。从 typescriptlang.org 下载并安装Visual Studio Web express(在工作中使用pro)和打字稿依赖项并使用nuget获取jquery.d.ts文件后,jquery.d.ts文件中的错误消失了(尽管相同的代码,差异了它)。
但是,在家中使用网络版VS的快速版,我发现了一个奇怪的错误或错误的配置,这里有一个描述:
在VS 2012 Express中,我保存了文件,当我查看相应的js文件时,我在那里看到了定义语句,但是生成的实际语句中缺少所有导入。看看下面的hello.ts和hello.js然后是hello.js(重建解决方案后正确编译)
你好.ts
/// <reference path="typings/jquery/jquery.d.ts"/>
import $ = require('jquery');
import app = require('app');
var a = new app.MyClass('curt');
a.Hello();
您好.js通过保存文件生成
define(["require", "exports"], function(require, exports) {
var a = new app.MyClass('curt');
a.Hello();
});
//# sourceMappingURL=hello.js.map
您好.js重新生成解决方案后正确构建
define(["require", "exports", 'jquery', 'app'], function(require, exports, __$__, __app__) {
/// <reference path="typings/jquery/jquery.d.ts"/>
var $ = __$__;
var app = __app__;
var a = new app.MyClass('curt');
a.Hello();
});
//# sourceMappingURL=hello.js.map
注意:保存文件 hello.ts 总是出错,但在重建后会正确生成。
如果有人可以重现这一点,则可能需要将其记录为错误。如果不是,则可能是我的构建环境有问题。如果我卸载并重新安装打字稿,我在工作中遇到的原始问题(问题)应该得到解决,因为我似乎在家里没有那个特定问题。