如何输入 jQuery .on("paste", hdl)
How to type a jQuery .on("paste", hdl)
我正在尝试为 Chrome(仅)下的 contenteditable <div>
定义处理程序。我有一个 jQuery JQuery<HTMLElement>
,我想用 .on()
添加一个 paste
事件处理程序,但打字稿此时抱怨:
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 here
pasteHandler
的正确输入是什么?我试过了,但无法破译 jQuery 类型的文件。
我发现的唯一解决方法是将 on
调用替换为:
$("div")[0].addEventListener("paste", pasteHandler);
谢谢你的帮助!
请不要专注于jQuery的使用。这是一个旧代码。
可以
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
我正在尝试为 Chrome(仅)下的 contenteditable <div>
定义处理程序。我有一个 jQuery JQuery<HTMLElement>
,我想用 .on()
添加一个 paste
事件处理程序,但打字稿此时抱怨:
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 here
pasteHandler
的正确输入是什么?我试过了,但无法破译 jQuery 类型的文件。
我发现的唯一解决方法是将 on
调用替换为:
$("div")[0].addEventListener("paste", pasteHandler);
谢谢你的帮助!
请不要专注于jQuery的使用。这是一个旧代码。
可以
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