由于 typescript 的强类型特性,在比较 jQuery .data() 调用的结果和像多个字符串这样的简单类型时似乎存在问题。
例如:
var dataValue = $("#myDiv").data("div-index");
if(dataValue === 0)
{
alert("first item");
}
以上将产生错误Operator '===' cannot be applied to types 'JQuery' and 'number'.
TypeScript 将结果.data()
视为 JQuery 类型,因此不可能像预期的复杂类型那样在其之间进行评估。
到目前为止,唯一的解决方法是在调用.toString()
结束时.data()
调用,但这意味着修改所有当前.data()
调用及其比较。这也使得数字比较>
变得不可能,因为我们无法在字符串和数字之间进行比较。
此问题似乎仅在更新到 TypeScript 1.6 后才会出现。