uni-helper / uni-app-types

为 uni-app 内置组件提供 TypeScript 类型
https://uni-helper.js.org/uni-app-types
MIT License
83 stars 14 forks source link

chore: update event #34

Closed Megasu closed 1 year ago

Megasu commented 1 year ago

Description 描述

增加 event 参数兼容

Linked Issues 关联的 Issues

Issues: #31

Additional context 额外上下文

image

ModyQyW commented 1 year ago

Review 了一部分,然后突然想到了另一个问题。

在 vue 文档中,并没有强制要求 $event 的位置,见 https://cn.vuejs.org/guide/essentials/event-handling.html#accessing-event-argument-in-inline-handlers。甚至,可以不传入 $event

而这个 PR,则是变相地增加了限制,要求必须要有 $event$event 必须是第一个参数。我感觉有点不妥。针对这个问题你有什么想法吗?

ModyQyW commented 1 year ago

我提出那个想法的时候脑子有点不清醒 😅 在此先说声抱歉 🙏

如果使用 handleChange(1, $event),实际上是调用了 $event => handleChange(1, $event)。使用 handleChange($event, 1) 同理。

image

不需要使用 SwiperOnChange 类型来标记这个方法,只需要标记 $event 和对应的参数。而且好像也没办法使用 SwiperOnChange 类型来覆盖这个方法所有可能出现的类型,只能标记 $event 和对应的参数。

如果使用 handleChange,这个时候可以用 SwiperOnChange,也可以只标记 $event 的类型。

从上面两种情况来看,我提出那个想法和这个 PR 增加的 ...params: any[] 好像是无效操作 😅

Megasu commented 1 year ago

哈哈,没事,我也只是用正则批量替换的而已。那还是提供 event 类型比较合适。