14

我知道我已经下载的定义文件存在一些问题。例如这里使用以下 $.ajax 调用:

$.ajax("/Admin/xx",
{
    cache: false
})

请注意,我需要先指定 URL。我记得读过这被理解为一个错误。

从哪里可以得到最新的 JQuery 定义文件。有人知道微软何时会发布他们现在拥有的 Typescript Alpha 版本的更新吗?

4

3 回答 3

13

您可以在此处从 TypeScript 的存储库中找到 jQuery 定义的分支:

绝对打字

它包含对原始版本的数十个修复,包括 ajax() 重载。一旦 TypeScript 团队开始接受拉取请求,我将在那里推送修复。

关于 TypeScript 本身的更新:它不是 alpha,而是预览版。0.8.1 版本正在回购中,他们表示希望有 2013 年的最终版本。

于 2012-11-13T07:39:56.817 回答
6

更新!现在,Definite Typed 项目是获取您的定义的正确位置 - 微软现在正在积极参与 Definitive Typed 项目。

最新的 jQuery 官方类型可以在 TypeScript Codeplex 网站上找到。(项目已移动)。

我相信目前的定义是:

ajax(url: string, settings: JQueryAjaxSettings);

这是正确的,但它不是ajax函数的唯一变体,它真的应该用以下定义重载:

ajax(settings: JQueryAjaxSettings);

您可以在自己的代码中添加对此的支持,方法是在 TypeScript jquery.d.ts 定义之上添加您自己的扩展,并在 jquery.d.ts 文件更新时删除它 - 当它更新时,您将获得一个构建关于重复定义的警告以提醒您执行此操作。

declare interface JQueryStatic {
    ajax(settings: JQueryAjaxSettings);
}
于 2012-11-12T17:24:36.330 回答
1

从definitelyTyped, jQuery 1.10.x / 2.0.x的声明文件在这里:

https://github.com/borisyankov/DefinitelyTyped/blob/master/jquery/jquery.d.ts(死链接)

..或以原始形式:

https://raw.githubusercontent.com/borisyankov/DefinitelyTyped/master/jquery/jquery.d.ts

Google Hosted Libraries分发(截至今天)jQuery 2.1.3,这是我更喜欢使用的一个。我不知道 API 在 2.0 和 2.1 之间变化到什么程度。但是如果你在你的 TypeScript 应用程序中发现了一个错误,那可能是因为最新版本的 jQuery 中的一个小的 API 更改没有传播到上面提供的声明文件中。

于 2015-03-28T18:30:40.160 回答