猿问

如何在TypeScript 中 判断 querySelector 返回的元素类型?

定义了一个工具函数,预期用来选择不同元素。它推断返回类型为Element,不过这是个基类,很多具体类的方法和属性不能自动提示。
exportconst$=(selector,scope=document)=>scope.querySelector(selector);
我期望当选择元素时,TS能提示有value属性,或
时有innerHTML属性(或其它方法)。我尝试将返回类型定义为HTMLElement|HTMLInputElement,不过TS总是推断为“HTMLElement没有value属性”。
exportconst$=(selector,scope=document):HTMLElement|HTMLInputElement=>scope.querySelector(selector);
请问,我该如何定义这个返回值类型,才能根据不同的元素,提示其具有的具体属性、方法呢?谢谢<3
墨色风雨
浏览 1722回答 2
2回答

DIEA

感谢回复,你的as语法给我提供了一个方向。现在改成了如下写法:泛型定义:exportconst$=(selector,scope=document):T=>scope.querySelector(selector);调用:const$account:HTMLInputElement=$("#login-account");//自动提示.valueconstaccount=$account.value

慕斯王

这个只能你手动提示tsconstinput=scope.querySelector('#input')asHTMLInputElement;constinput=scope.querySelector('#input');if(inputinstanceofHTMLInputElement){...}
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答