phantasmal-world/src/new/core/gui/View.ts

19 lines
503 B
TypeScript
Raw Normal View History

2019-08-20 04:56:40 +08:00
import { Disposable } from "./Disposable";
export abstract class View implements Disposable {
abstract readonly element: HTMLElement;
private disposables: Disposable[] = [];
protected disposable<T extends Disposable>(disposable: T): T {
this.disposables.push(disposable);
return disposable;
}
dispose(): void {
this.element.remove();
this.disposables.forEach(d => d.dispose());
this.disposables.splice(0, this.disposables.length);
2019-08-20 04:56:40 +08:00
}
}