我有以下代码:
// 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文档不匹配。
答案 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.d.ts可能不正确。
我的建议是将jquery.d.ts编辑为正确的项目,并在typescript.codeplex.com上提出错误
prop(propertyName: string): string;