在TypeScript中使用剪贴板数据

在TypeScript中使用剪贴板数据,typescript,Typescript,我正在尝试使用以下方法从TS1.6中的剪贴板访问数据: $(container).bind("paste", (e) => { var data = e.originalEvent.clipboardData.getData('text'); }); 但它只给了我以下构建错误: 类型“JQueryEventObject”上不存在属性“clipboardData” 如果我删除第二行并在Chrome46中调试它,我只需调用 e.originalEvent.clipboardData.

我正在尝试使用以下方法从TS1.6中的剪贴板访问数据:

$(container).bind("paste", (e) => {
    var data = e.originalEvent.clipboardData.getData('text');
});
但它只给了我以下构建错误:

类型“JQueryEventObject”上不存在属性“clipboardData”

如果我删除第二行并在Chrome46中调试它,我只需调用

e.originalEvent.clipboardData.getData('text');
在最新版本的jQuery.d.ts中,我在JQueryEventObject接口中看不到clipboardData,但问题是-它应该存在,还是有一种ts当前支持的从剪贴板检索数据的不同方式?

似乎直到TS1.8,我发现的一个(hacky)选项是仅使用以下内容扩展
事件:

interface Event {
    clipboardData: any;
}

我相信我可以通过用更好的东西替换
任何
来改进这一点,但它目前仍然有效。

您可以使用[“属性”]方法绕过预期的typescript类型

 var pastedData = e.originalEvent["clipboardData"].getData('text');

事件
投射到
剪贴簿事件
如下:

element.bind('paste', (event: Event) => {
    let clipboardEvent: ClipboardEvent = <ClipboardEvent> event;
});
element.bind('paste',(事件:event)=>{
let clipboardEvent:clipboardEvent=event;
});
使用剪贴板事件类型(例如)


自Typescript 1.5属性clipboardData的可能重复项已从类型窗口中删除。看起来ClipboardEvent也将在1.8中引入,所以可能需要等待。检查其他人在某些项目中也停留在1.8版本之前的答案:它是
剪贴板数据?:数据传输
。我认为需要转换原始事件:event.originalEvent I您发现它是正确的-请编辑您的答案。
private onPaste(event: ClipboardEvent) {
    const {clipboardData} = event;
    const pastedText = clipboardData.getData('text');
}