我尝试使用以下方法从TS1.6中的剪贴板访问数据:
$(container).bind("paste", (e) => {
var data = e.originalEvent.clipboardData.getData('text');
});
但它只是给我以下构建错误:
属性' clipboardData'在类型' JQueryEventObject'
上不存在
如果我删除第二行并在Chrome 46中调试它,我只需拨打
即可获取剪贴板数据e.originalEvent.clipboardData.getData('text');
我无法在最新版本的jQuery.d.ts中的JQueryEventObject接口中看到clipboardData,但问题是 - 它应该存在还是有一种不同的方式从TS当前支持的剪贴板中检索数据?
答案 0 :(得分:5)
似乎直到TS1.8,我发现一个(hacky)选项只是用这个扩展Event
:
interface Event {
clipboardData: any;
}
我确信我可以通过更好地替换any
来改善这一点,但现在可以使用。
答案 1 :(得分:5)
您可以使用[“property”]方法
绕过预期的打字稿类型 var pastedData = e.originalEvent["clipboardData"].getData('text');
答案 2 :(得分:1)
将Event
投射到ClipboardEvent
,如下所示:
element.bind('paste', (event: Event) => {
let clipboardEvent: ClipboardEvent = <ClipboardEvent> event;
});
答案 3 :(得分:1)
使用ClipboardEvent类型(例如)
private onPaste(event: ClipboardEvent) {
const {clipboardData} = event;
const pastedText = clipboardData.getData('text');
}