目前我正在一个nextJS项目中使用TypeScript。 我异步使用了cdn版本的flowplayer,并且它扩展了事件目标(event.target)的新属性。
问题是在构建过程中,我遇到了错误: 类型错误:属性“currentTime”在类型“EventTarget & HTMLInputElement”上不存在。
我需要将其与这些属性进行交集:currentTime,duration,opts。 这就是我的尝试:
type FlowPlayerEvent<T extends EventTarget> = Event & {
target: T;
currentTime: Number;
duration: Number;
opts: Object;
};
这是我的事件处理程序
function stateHandler(ev : Event) {
const Event: FlowPlayerEvent = ev.target;
if (ev.type === 'pause') { console.log('paused'); }
if (ev.type === 'playing') { console.log(`Playing at ${Event.currentTime}, duration is: ${Event.duration}, video ID is: ${Event.opts.metadata.id}`); }
if (ev.type === 'timeupdate') { console.log(Event.currentTime); }
if (ev.type === 'ended') { console.log('The end'); }
当我悬停在FlowPlayerEvent上时,我得到了以下信息:通用类型“FlowPlayerEvent”需要1个类型参数。ts(2314)
在这种情况下,扩展它的正确方式是什么?
提前感谢!