vue3(ts)類型EventTarget上不存在屬性value的問題
vue3(ts)類型“EventTarget”上不存在屬性“value”
記錄自己學(xué)習(xí)ts遇到的坑,幫助加強記憶。
問題
封裝自定義input組件,在獲取e.target.value時出現(xiàn)如下報錯。類型“EventTarget”上不存在屬性“value”
const inputFn = (e: Event) => { const val = e.target.value emit("update:modelValue", val) }
原因
e.target默認(rèn)為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開發(fā)時,注視事件響應(yīng)函數(shù)回調(diào)函數(shù)(例如onScroll)參數(shù)為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); } }}
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
每天學(xué)點Vue源碼之vm.$mount掛載函數(shù)
這篇文章主要介紹了vm.$mount掛載函數(shù),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03Vue+elementUI實現(xiàn)動態(tài)展示列表的數(shù)據(jù)
這篇文章主要介紹了Vue+elementUI實現(xiàn)動態(tài)展示列表的數(shù)據(jù)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-08-08