我一直试图让这一天工作,我在一个文件(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 = $;
}
最后有一条错误行,在出口行上显示“模块预期”。
我误解了什么或什么在这里?
我正在尝试使用typescript作为AMD兼容(使用requirejs),但是jquery.d.ts行中的这一行打破了它,一个错误“模块预期”。
我需要生成必要的
require(['require','exports','jquery'], function(require, exports, $) {
//....
});
应该是jquery.d.ts中的导出和import $ = require('jquery');
对吗?
最终目标是使用require语句确保在使用requirejs执行文件中的代码之前加载jquery。
答案 0 :(得分:0)
尝试
import jquery = require('jquery');
答案 1 :(得分:0)
打字稿古怪......
遇到问题并在我的工作计算机上提示问题。从typescriptlang.org下载并安装visual studio web express(使用pro在工作中)和typescript依赖项并使用nuget获取jquery.d.ts文件后,jquery.d.ts文件中的错误消失了(相同的代码,差异化)。
但是,在家里使用express for web version VS我发现了一个奇怪的错误或错误的配置,这里有一个描述:
从VS 2012 Express中我保存文件,当我查看相应的js文件时,我看到那里的define语句,但生成的实际语句中缺少所有导入。请看下面的hello.ts和hello.js,然后是hello.js(重建解决方案后正确编译)
<强> hello.ts 强>
/// <reference path="typings/jquery/jquery.d.ts"/>
import $ = require('jquery');
import app = require('app');
var a = new app.MyClass('curt');
a.Hello();
通过保存文件生成hello.js
define(["require", "exports"], function(require, exports) {
var a = new app.MyClass('curt');
a.Hello();
});
//# sourceMappingURL=hello.js.map
在重建解决方案后正确构建了hello.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总是错误,但在重建后会正确生成。
如果有人可以重现这一点,则可能需要将其记录为错误。如果不是,它可能是我的构建环境的问题。如果我打开并重新安装打字稿,我应该解决我在工作中遇到的原始问题(问题),因为我在家里似乎没有这个问题。