有没有一种方法可以让TypeScript不会为这样的代码抛出错误'TS2339: property value does not exist on type Element'
:
myRow.querySelector('.my-class').value = myVal
强制转换为< HTMLInputElement >导致代码完全中断。
Typescript似乎不能很好地处理涉及DOM的事情,除非我遗漏了什么;也就是说,对于可以返回任何元素的函数,它选择specific而不是general。
4条答案
按热度按时间00jrzges1#
querySelector方法返回
Element | null
。如果你没有使用
strictNullChecks
,那么就使用Element,它没有value
成员。因此,将其转换为
HTMLInputElement
,正如我在评论中所写的那样:您收到的错误是由于忘记了第一行末尾的分号,发生的情况是编译器认为您正在尝试这样做:
别忘了用分号结束行。
编辑
querySelector
方法是通用的,所以你也可以这样做:对于
strictNullChecks
,如果你确定元素在那里,你可以使用Non-nullAssert操作符:wmtdaxz32#
这里的其他答案都没有帮助。我在其他地方通过反复试验发现
HTMLElement
HTMLElement[]
zbdgwd5y3#
0ejtzxu14#
我是这样做的: