vue typescript event 的数据类型怎么表示?

2021-12-24 19:00:52 +08:00
 GhostBoy


function readFile(event): void {
    const file = event.target.files[0];
    console.log(file.name);
};


在 vscode 里 function readFile(event): void { 中的 event 总是有红色波浪线! 想请教一下如何解决?

1718 次点击
所在节点    Vue.js
3 条回复
wunonglin
2021-12-24 19:16:47 +08:00
```js
function readFile(event: Event): void{
const input = event.target as HTMLInputElement
const file = input.files.item(0) || undefined
if (file){
巴拉巴拉
}
}
```

或者

```js
function readFile(event: Event): void{
const input = event.target as any
if (input instanceof HTMLInputElement){
const file = input.files.item(0) || undefined
if (file){
巴拉巴拉
}
}
}
```


大概是这样。手写的没用编辑器,有错请指正。。。
thinkershare
2021-12-24 22:22:21 +08:00
你这??? 可以不用管它, 也可以自己标记出实际的 Event 类型, 关于 Event 类型的详情可以去 MDN 查找, 或者干脆偷懒直接使用 event:any, TypeScript 为 JS 添加了 Class Type, 所有很多时候需要附加的 Type(或者说是 Interface).
Zzzz77
2021-12-28 09:42:04 +08:00
把鼠标放在变量或者相关的方法上有提示的,比如你写一个 document.addEventListener('mousemove', this.mousemoveListener) 把鼠标放 addEventListener 上就能看到相关各种参数的类型。

其实常用就那么几种,鼠标相关的、键盘相关的、文件相关的。。等等

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/824302

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX