组件代码:
<h2 @click="handleEvent(post.id)">{{ post.title }}</h2>
function handleEvent(id: number) {
router.push("/post/" + id);
}
打字稿错误:
Type '($event: any) => void' is not assignable to type 'MouseEvent'.ts(2322)
__VLS_types.ts(107, 56): The expected type comes from property 'click' which is declared here on type 'EventObject<undefined, "click", {}, MouseEvent | undefined>'
有什么问题吗?
发布于 2022-10-13 17:47:55
发布于 2022-10-14 13:49:42
TL;DR:将@types/node
降级为18.8.0
,直到vue 3.2.41
发布。
在过去的几天里,我们遇到了同样的问题,但我们认为我们已经找到了解决办法。
结果是vue 3.2.40
和@types/node 18.8.5
之间的冲突。当前版本的vue与最新的节点类型不兼容(但3.2.41
应该解决这个问题)。
我为解决这个问题所采取的步骤:
@types/node
还原为不带^
的18.8.0
find . -name 'node_modules' -type d -prune -print -exec rm -rf '{}' \\;
,因为我们使用的是纱线工作区monorepocmd+shift+p
转向搜索Developer: Reload Window
发布于 2022-10-13 12:25:09
我们面临着同样的问题--模板中的所有事件处理程序都是错误的。几天前出现的。根据类型记录定义,事件处理程序必须返回类型" event“或"MouseEvent”。因此,我们在模板中将其更正如下:
<h2 @click="(e : MouseEvent) => {handleEvent(post.id); return e;}">{{ post.title }}</h2>
它可以工作,但似乎不是应该编写事件处理程序的方式.
https://stackoverflow.com/questions/74037132
复制相似问题