.prop的JQuery typescript定义?

时间:2012-11-18 19:05:16

标签: javascript jquery typescript

我有以下代码:

// 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');

在typescript中,它将title的值设置为bool。然后,当我尝试按如下方式使用它时,我收到一个错误:

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

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

prop(propertyName: string): bool;

这似乎与JQuery文档不匹配。

3 个答案:

答案 0 :(得分:3)

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

大多数属性都是字符串,但有些是数字(例如.selectedIndex),有些是布尔值(.checked等),$.fn.prop() 转换它们所有的字符串。

正确的定义应该是:

prop(propertyName: string): any;

TypeScript网站上已列出work item以解决此问题。

答案 1 :(得分:2)

正如@Alnitak指出的那样,返回值应该是'any'。

我修复了DefinitelyTyped的jQuery定义文件,它是TypeScript文件的一个分支,但有很多修复。

答案 2 :(得分:0)

jQuery文档声明prop返回:

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

  • 使用两个参数

  • 调用时的jQuery对象

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

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

我的建议是将jquery.d.ts编辑为正确的项目,并在typescript.codeplex.com上提出错误

prop(propertyName: string): string;