vue3(ts)類(lèi)型EventTarget上不存在屬性value的問(wèn)題
vue3(ts)類(lèi)型“EventTarget”上不存在屬性“value”
記錄自己學(xué)習(xí)ts遇到的坑,幫助加強(qiáng)記憶。
問(wèn)題
封裝自定義input組件,在獲取e.target.value時(shí)出現(xiàn)如下報(bào)錯(cuò)。類(lèi)型“EventTarget”上不存在屬性“value”
const inputFn = (e: Event) => { const val = e.target.value emit("update:modelValue", val) }
原因
e.target默認(rèn)為HTMLElement類(lèi)型,是所有HTML元素類(lèi)型的父類(lèi),不能確保身上一定有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) }
類(lèi)型“EventTarget”上不存在屬性“clientHeight”
使用ts開(kāi)發(fā)時(shí),注視事件響應(yīng)函數(shù)回調(diào)函數(shù)(例如onScroll)參數(shù)為Event時(shí),使用e.target.clientHeight
等會(huì)報(bào)錯(cuò):
類(lèi)型“EventTarget”上不存在屬性“clientHeight”。
解決方法
使用as進(jìn)行類(lèi)型斷言
(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é)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue實(shí)現(xiàn)簡(jiǎn)單全選和反選功能
這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)簡(jiǎn)單全選和反選功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-09-09每天學(xué)點(diǎn)Vue源碼之vm.$mount掛載函數(shù)
這篇文章主要介紹了vm.$mount掛載函數(shù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03Vue+elementUI實(shí)現(xiàn)動(dòng)態(tài)展示列表的數(shù)據(jù)
這篇文章主要介紹了Vue+elementUI實(shí)現(xiàn)動(dòng)態(tài)展示列表的數(shù)據(jù)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08解決node-sass安裝報(bào)錯(cuò)無(wú)python等情況
在國(guó)內(nèi)安裝node-sass常因無(wú)法穩(wěn)定連接GitHub而失敗,解決方法包括手動(dòng)下載對(duì)應(yīng)的binding.node文件并放入緩存目錄,操作步驟詳細(xì),適合非Python用戶(hù),無(wú)需額外環(huán)境配置2024-10-10