export class WeakArray { private weakArray: WeakRef[] = []; constructor() {} push(obj: T) { this.weakArray.push(new WeakRef(obj)); } forEach(callback: (obj: T, index: number) => void) { this.weakArray.forEach((ref, index) => { const obj = ref.deref(); if (obj) { callback(obj, index); } }); } }