【问题标题】:Missing onresourcetimingbufferfull event from Performance interface性能接口中缺少 onresourcetimingbufferfull 事件
【发布时间】:2017-05-16 10:40:50
【问题描述】:

资源计时 API 具有诸如 onresourcetimingbufferfull 之类的事件,当达到 150(默认)资源的限制时会触发该事件。 https://www.w3.org/TR/resource-timing-1/#extensions-performance-interface

lib.d.ts 文件https://github.com/Microsoft/TypeScript/blob/master/lib/lib.d.ts 中的性能接口没有定义 onresourcetimingbufferfull 事件。有什么方法可以实现吗?

【问题讨论】:

    标签: typescript resource-timing-api


    【解决方案1】:

    当然!您可以在自己的代码中简单地扩充Performance 接口:

    // this does not overwrite `Performance`, it just augments it
    interface Performance {
        onresourcetimingbufferfull: (e: Event) => any;
        // and/or perhaps something like
        addEventListener(type: "resourcetimingbufferfull", handler: (e: Event) => any): void;
        // in versions of TS before 2.0, you'll need to add this line also:
        addEventListener(type: string, handler: (e: Event) => any): void;
    }
    
    function bufferFull(e: Event) {
      console.log("WARNING: Resource Timing Buffer is FULL!");
      performance.setResourceTimingBufferSize(200);
    }
    
    performance.onresourcetimingbufferfull = bufferFull;
    performance.addEventListener("resourcetimingbufferfull", bufferFull);
    

    我找不到the resourcetimingbufferfull event carried any special payload,所以最简单的方法就是将其输入为普通的旧Event

    【讨论】:

    • 我收到此错误“专用重载签名不可分配给任何非专用签名”
    • @skjindal93 这是一个旧的 TypeScript 错误,如果您升级到 TS 2.0 或更高版本,它将被修复。我还更新了我的答案以包含对旧版本 TS 的修复,以防您无法更新
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-09-23
    • 2016-05-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多