为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

墨色风雨 2019-05-12 13:02:23
定义了一个工具函数,预期用来选择不同元素。它推断返回类型为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);请问,我该如何定义这个返回值类型,才能根据不同的元素,提示其具有的具体属性、方法呢?谢谢
查看完整描述

2 回答

?
DIEA

TA贡献1820条经验 获得超2个赞

感谢回复,你的as语法给我提供了一个方向。现在改成了如下写法:
泛型定义:
exportconst$=(selector,scope=document):T=>
scope.querySelector(selector);
调用:
const$account:HTMLInputElement=$("#login-account");
//自动提示.value
constaccount=$account.value
                            
查看完整回答
反对 回复 2019-05-12
?
慕斯王

TA贡献1864条经验 获得超2个赞

这个只能你手动提示ts
constinput=scope.querySelector('#input')asHTMLInputElement;
constinput=scope.querySelector('#input');
if(inputinstanceofHTMLInputElement){
...
}
                            
查看完整回答
反对 回复 2019-05-12
  • 2 回答
  • 0 关注
  • 1714 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信