在typescript 0.9.1.1中,声明模块“jquery”{export = $;在jquery.d.ts文件中,在visual studio中产生“模块预期”

时间:2013-09-13 23:42:18

标签: javascript jquery visual-studio-2012 typescript

我一直试图让这一天工作,我在一个文件(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。

2 个答案:

答案 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总是错误,但在重建后会正确生成。

如果有人可以重现这一点,则可能需要将其记录为错误。如果不是,它可能是我的构建环境的问题。如果我打开并重新安装打字稿,我应该解决我在工作中遇到的原始问题(问题),因为我在家里似乎没有这个问题。