Отсутствует событие onresourcetimingbufferfull из интерфейса Performance

В API синхронизации ресурсов есть события типа onresourcetimingbufferfull, которые запускаются при достижении предела в 150(по умолчанию) ресурсов. https://www.w3.org/TR/resource-timing-1/

Интерфейс Performance в файле lib.d.ts https://github.com/Microsoft/TypeScript/blob/master/lib/lib.d.ts не имеет определенного события onresourcetimingbufferfull. Есть ли способ добиться этого?

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);

Я не мог найти, что resourcetimingbufferfull Событие несло какую-либо особую полезную нагрузку, поэтому проще всего набрать его как обычный старый Event,

Другие вопросы по тегам