gpt4 book ai didi

jquery - TypeScript 不允许在 .data() 和数字/字符串之间进行比较

转载 作者:搜寻专家 更新时间:2023-10-30 21:18:23 25 4
gpt4 key购买 nike

由于 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 后才会出现。

最佳答案

它看起来像一个错误。我刚刚评论了jQuery.d.ts文件并找到您的返回类型,但用于另一个方法重载。

解决方案

只需尝试添加 <any>在你的方法调用之上:

var dataValue = <any>$("#myDiv").data("div-index");

if(dataValue === 0)
{
alert("first item");
}

这个案例适合你

附加案例

您也可以在官方 TypeScript 上报告此问题问题线程和DefinitelyTyped问题线程

关于jquery - TypeScript 不允许在 .data() 和数字/字符串之间进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32781977/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com