jQuery 到 TypeScript 转换出现错误。

huangapple go评论77阅读模式
英文:

jquery to typescriptconversion giving error

问题

遇到将以下 jQuery 代码转换为 TypeScript 时出错的问题:

$("#reqDate-ev").val(this.selection.requestDt);

如果将其拆分为两行,则可以正常工作,没有任何错误:

var b: any = document.getElementById("reqDate-ev");
b.value = this.selection.requestDt;

在单行中这样做的问题是什么?

英文:

Getting error while converting below jquery code to type script

$("#reqDate-ev").val(this.selection.requestDt);

jQuery 到 TypeScript 转换出现错误。

If I split it into two lines its working without any error

var b:any = document.getElementById("reqDate-ev");
b.value = this.selection.requestDt;

Whats the issue in doing it in single line?

答案1

得分: 2

如果没有具有 id="reqDate-ev" 的元素,则 document.getElementById("reqDate-ev") 的值将为 null。这是第一个代码中警告你的内容。

然而,在第二个代码片段中,你将值强制转换为 any 类型,因此 TypeScript 不关心变量 b 内部的内容。

在访问元素值之前最好先检查元素是否存在。

在 JQuery 中,$("#reqDate-ev") 返回的是一个对象实例,而不是实际的 DOM 元素。所以,当你在实例上调用 val() 函数时,该库会在内部检查元素是否存在。

英文:

If there is no element with id="reqDate-ev", the value of document.getElementById("reqDate-ev") is going to be null. That is what it warns you in the first code.

Whereas, in the second code snippet, you typecast the value to any type, so Typescript does not care about the content inside the variable b.

It's always better to do have an existence check on the element before accessing its value.

In JQuery, $("#reqDate-ev") returns an object instance and not the actual DOM element. So, when you call val() function on the instance, the library internally checks for the existence of the element.

huangapple
  • 本文由 发表于 2023年3月15日 18:52:46
  • 转载请务必保留本文链接:https://go.coder-hub.com/75743711.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定