在打字稿 0.9.1.1 中,在 jquery.d.ts 文件中声明模块“jquery” { export = $; }

In typescript 0.9.1.1, declare module "jquery" { export = $; } in jquery.d.ts file yields "module expected" in visual studio

本文关键字:jquery export 模块 ts 文件 声明      更新时间:2023-09-26

我一直在努力让它工作一整天,我在一个文件(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 总是出错,但在重建后会正确生成。

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