Dev*_*fic 4 jquery types typescript
我有一个现有的大型项目,该项目将转换为打字稿,并将最终进行重构,然后放入Angular。当前项目中包含很多Jquery。我在项目中实现了当前的@types。
问题是这条线
if (["Priority", "PM"].indexOf($('option:selected', this).val()) >= 0) {
Run Code Online (Sandbox Code Playgroud)
由于类型定义而创建错误。我得到[TS]类型为'string |的参数。编号 string []'不可分配给'string'类型的参数。因为indexOf定义为“(方法)Array.indexOf(searchElement:string,fromIndex ?: number):number”,而Jquery的.val被定义为“ JQuery.val():string | number | string [](+1超载)”。
我需要一种方法来覆盖.val定义,仅将其字符串化,以便我可以将其编译为类似这样的行,而不会覆盖整个项目的.val。我在项目中有很多这样的代码行,所以我还不能只重写每个代码行。最终,我们将完全摆脱Jquery。如果有人能指出我正确的方向,那就太好了。
我终于想出了使它工作的方法。我能够将类型字符串转换为它。由于我在项目中的几个地方都有那条确切的线,所以我创建了一个像这样的变量:
let optSel: string = <string>$('option:selected', this).val();
if ($(["Priority", "PM"]).index(optSel) >= 0) {
Run Code Online (Sandbox Code Playgroud)
这使我可以确保.val类型是一个与Array.indexOf(searchElement:string的indexOf要求匹配的字符串。希望对您有所帮助。
| 归档时间: |
|
| 查看次数: |
3274 次 |
| 最近记录: |