我正在尝试为Chrome (仅限)下的contenteditable <div>定义处理程序。我有一个jQuery JQuery<HTMLElement>,我想用.on()添加一个paste事件处理程序,但是typescript在这一点上抱怨说:
No overload matches this call.
The last overload gave the following error.
Argument of type 'string' is not assignable to parameter of type
'TypeEventHandlers<HTMLElement, (event: ClipboardEvent) => void, HTMLElement, HTMLElement>'.ts(2769)
JQuery.d.ts(8059, 5): The last overload is declared here.代码是:
const pasteHandler = (event: ClipboardEvent): void => {
const pastedData = event.clipboardData!.getData("text/plain");
console.log(pastedData);
};
$("div").on("paste", pasteHandler); // <- error message from herepasteHandler的正确类型是什么?我尝试过,但无法破译jQuery类型的文件。我发现的唯一解决办法是将on调用替换为:$("div")[0].addEventListener("paste", pasteHandler);谢谢您的帮助!请不要关注jQuery的使用。这是一个古老的代码。
发布于 2021-04-26 01:40:19
它可以是
const pasteHandler = (event: JQuery.TriggeredEvent<HTMLElement, undefined, HTMLElement, HTMLElement): void => {
const pastedData = (event.originalEvent as ClipboardEvent).clipboardData?.getData("text/plain");
//...
}演示:https://codesandbox.io/s/strange-noether-lgnsi?file=/src/index.ts
https://stackoverflow.com/questions/67254055
复制相似问题