3

我有以下代码:

// Populate the title of the selects on change and trigger a change
$('#modal .update-title')
    .change(function () {
        var $select = $(this),
        match = null,
        matchRow = null,
        title = $('option:selected', this).prop('title');

在打字稿中,这将标题的值设置为布尔值。然后,当我尝试按如下方式使用它时,出现错误:

$("#modal_Title_" + matchRow).val(title);

这是 JQuery 定义的另一个问题还是我做错了什么?检查定义文件时,我看到以下内容:

prop(propertyName: string): bool;

这似乎与 JQuery 文档不匹配。

4

3 回答 3

3

jQuery 文档不正确,您的类型定义文件也不正确。

大多数属性是字符串,但有些是数字(例如.selectedIndex),有些是布尔值(.checked等),并且$.fn.prop() 不会将它们全部转换为字符串。

正确的定义应该是:

prop(propertyName: string): any;

TypeScript 网站上已经列出了一个工作项来解决这个问题。

于 2012-11-18T21:33:37.190 回答
2

正如@Alnitak 指出的那样,返回值应该是“任何”。

我已将 jQuery 定义文件修复为来自 TypeScript 文件的分支, DefinitelyTyped,但有许多修复。

于 2012-11-19T15:42:03.540 回答
0

jQuery 文档声明 prop 返回:

  • 使用一个参数调用时的字符串

  • 使用两个参数调用时的 jQuery 对象

http://api.jquery.com/prop/

所以根据这个 jquery.d.ts 可能是不正确的。

我的建议是编辑 jquery.d.ts 以使其在您的项目中正确,并在 typescript.codeplex.com 上提出错误

prop(propertyName: string): string;
于 2012-11-18T21:25:39.800 回答