鼠标滚轮函数在 svelte 上返回错误

Art*_*ias 4 typescript svelte svelte-component

我想知道为什么这段代码

<div class="home" on:mousewheel="{e=>handleScroll(e)}"></div>
Run Code Online (Sandbox Code Playgroud)

返回以下错误

类型 '{ 类:字符串;onmousewheel: (e: 任意) => void; }' 不可分配给类型“HTMLProps”。类型“HTMLProps”上不存在属性“onmousewheel”。

这只是出于好奇,因为即使有错误它也能完美地工作。

诗。我正在使用 TypeScript

Geo*_*ich 6

根据 MDN,鼠标滚轮事件已被弃用,并且在 Firefox 中不起作用。因为它是非标准的,所以它不包含在Svelte 使用的JSX 类型中。

最好使用标准的滚轮事件来代替鼠标滚轮。如果您确实想使用该事件,可以在单独的文件中增强 Svelte 类型:

// additional-svelte-jsx.d.ts
declare namespace svelte.JSX {
    interface HTMLAttributes<T> {
        onmousewheel?: (event: any) => any;
    }
}
Run Code Online (Sandbox Code Playgroud)