vue3(ts)类型“eventtarget”上不存在属性“value”
记录自己学习ts遇到的坑,帮助加强记忆。
问题
封装自定义input组件,在获取e.target.value时出现如下报错。类型“eventtarget”上不存在属性“value”
const inputfn = (e: event) => { const val = e.target.value emit("update:modelvalue", val) }
原因
e.target默认为htmlelement类型,是所有html元素类型的父类,不能确保身上一定有value属性。
因此需要断言成htmlinputelement。
解决方式
const inputfn = (e: event) => { const val = (<htmlinputelement>e.target).value emit("update:modelvalue", val) }
或
const inputfn = (e: event) => { const val = (e.target as htmlinputelement).value emit("update:modelvalue", val) }
类型“eventtarget”上不存在属性“clientheight”
使用ts开发时,注视事件响应函数回调函数(例如onscroll)参数为event时,使用e.target.clientheight
等会报错:
类型“eventtarget”上不存在属性“clientheight”。
解决方法
使用as进行类型断言
(e.target as htmlelement).scrollheight
例如:
onscroll={e => { if ( (e.target as htmlelement).scrollheight - (e.target as htmlelement).scrolltop <= (e.target as htmlelement).clientheight ) { getsridetaillist(true); } }}
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论