gpt4 book ai didi

javascript - 为什么 'input' 事件具有 `Event` 类型的事件而不是 `InputEvent`

转载 作者:行者123 更新时间:2023-12-04 15:21:14 27 4
gpt4 key购买 nike

您好,我想知道为什么 'input' 事件类型是 Event 类型(我认为它应该是 InputEvent )?

我在执行此操作时遇到了这个问题:

interface OnInputTextFieldListenerProps extends BaseTextFieldListenerProps {
eventName: Extract<keyof GlobalEventHandlersEventMap, 'input'>;
callback(e?: InputEvent): void;
}

if (isOnInputTextFieldProps(listenerProps)) {
this.input.addEventListener<'input'>(listenerProps.eventName, listenerProps.callback.bind(this));
}

现在我收到这个错误:

TS2345: Argument of type '(e?: InputEvent | undefined) => void' is not assignable to parameter of type '(this: HTMLInputElement, ev: Event) => any'.

这是完全正确的。但是为什么 GlobalEventHandlersEventMap 'input' 被键入为 Event 而不是 InputEvent

您可以在此处找到此GlobalEventHandlersEventMap 接口(interface) lib.dom.d.ts 5715 行。

注意事项

MDN documentation表示 GlobalEventHandlers.oninput 接口(interface)是 InputEventoninput 可能等同于 typescript input。我这样认为是因为在 MDN 文档中,GlobalEventHandlers 接口(interface)的每个键都以 on 开头。

I also decided to open an issue in Typescript repo which you can find here: Issue - 39925

最佳答案

所以这个'input'事件是Event类型而不是InputEvent的主要原因是InputEventdraft specification 的一部分 official HTML living standard .

如果您想了解更多信息,可以阅读 the whole answer Andrew Branch 提供

关于javascript - 为什么 'input' 事件具有 `Event` 类型的事件而不是 `InputEvent`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63273548/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com