Html 仅当设置两次值时,TypeScript调用签名错误

Html 仅当设置两次值时,TypeScript调用签名错误,html,typescript,Html,Typescript,我试图根据复选框是否被选中来更改HTML输入的值。如果我只重置一个输入,它完全可以工作,但是如果我尝试同时重置两个输入,我会得到错误 Cannot invoke an expression whose type lacks a call signature. Type 'String' has no compatible call signatures. "" is not a function 我的代码如下 if((<HTMLInputElement>unavailableI

我试图根据复选框是否被选中来更改HTML输入的值。如果我只重置一个输入,它完全可以工作,但是如果我尝试同时重置两个输入,我会得到错误

Cannot invoke an expression whose type lacks a call signature. Type 'String' has no compatible call signatures.
"" is not a function
我的代码如下

 if((<HTMLInputElement>unavailableInputs[i]).checked){
                (<HTMLInputElement>qtyShippedInputs[i]).value = ""

                (<HTMLInputElement>trackingNumberInputs[i]).value = ""
            }
我感谢所有的帮助

根据要求,这里是解决问题的整个代码和解决方法

禁用履行(装运){
const unavailableInputs=document.getElementsByClassName('unavailable-qty')
const qtyshippedinput=document.getElementsByClassName('已发货数量')
const requestedQtyFields=document.getElementsByClassName('requested-qty')
const trackingnumberinput=document.getElementsByClassName('tracking-number'))
const reasonCodeInputs=document.getElementsByClassName('reason-code')
常量reasonCodeValues=[]
常量行=[]
const lineCompleted=[]
让我
对于(i=0;i{
如果(line.unavailable===true&&(line.reasonCodeInputs===='CUSTOMERCANCEL'| | line.reasonCodeInputs==='unavailable')){
lineCompleted.push(真)
}else if(line.qtyShipped==line.requestedQty&&line.trackingNumber.length>=9){
lineCompleted.push(真)
}否则{
行已完成。推送(false)
}
})
return!lineCompleted.every(函数(e){
返回e==true
})

}
我看到这里有一个
I
。这是在一个循环内吗?如果是,您如何确定
i
将从何处取值?
qtyshippedinput
是否与
跟踪数字输入的长度相同?这里是否涉及可能导致问题的任何其他操作?我想知道,这里面有一个for循环。事实上,如果我把它分成两个相同的if语句,并在它自己的if语句中设置值,它就可以正常工作。如果我在一条if语句中同时设置了这两条语句,那么它只会抛出错误。如果您也使用
for
发布代码,那就太好了,因为问题似乎就在那里。我认为您正在使用不正确的索引访问其中一个数组。我可以发布它,但我确信这不是问题所在。因为if语句在for循环中。如果我把它放在两个If语句中,它们检查完全相同的条件,但是每个If语句只改变它工作的一个值。出于某种原因,只有当我将两个setter都放在if语句中时,它才会中断。如果它们被分成两个不同的If语句,则没有问题。