ts创建一个Input,添加事件监听器,函数类型报错?-灵析社区

七安前

### ts创建一个Input,添加事件监听器,函数类型报错? ![image.png](https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20250103/7857ae8a80e234af0fe707ffbfa79a3c.png) function onUpload() { const input = document.createElement("input") input.setAttribute("type", "file") input.setAttribute("accept", "image/*") input.addEventListener("input", handleUpload) // 这一行的 handleUpload 类型报错 input.click() function handleUpload(e: InputEvent) { const target = e.target as HTMLInputElement if (!target) return const file = target.files![0] if (!file) return const type = file.type as ImageExcAll if (!ImageFileTypes.includes(type)) return fetchFileData(file) const imgUrl = URL.createObjectURL(file) dispatch(changeImgUrl(imgUrl)) } function fetchFileData(file: File) { const fileData = new FormData() fileData.append("file", file) setLoading(true) const intervalId = setInterval(() => (rate prev + 1)), 40) getTableData(fileData).then(({ code, data }) => { if (code !== 0) return const { point: points, "measure-items": tableData, "ruler-scaling": rulerScaling } = data dispatch(changePointList(points)) dispatch(setTableData(tableData)) dispatch(setRulerScaling(rulerScaling)) sessionStorage.setItem("points", JSON.stringify(points)) sessionStorage.setItem("tableData", JSON.stringify(tableData)) sessionStorage.setItem("rulerScaling", JSON.stringify(rulerScaling)) setTimeout(() => setLoading(false), 500) clearInterval(intervalId) setRate(100) }) } }

阅读量:459

点赞量:11

问AI
input.addEventListener("input", (e: Event) => { const target = (e.target as HTMLInputElement); })