/src/actions.ts
type ActionCallback = (data: any) => void export default class Actions { elem: HTMLDivElement constructor() { this.elem = <HTMLDivElement>document.getElementById('actions'); this.clear(); } clear() { while (this.elem.firstChild) this.elem.removeChild(this.elem.firstChild); } addAction(title: string, callback: ActionCallback, data?: any) { const button = document.createElement('button'); button.innerText = title; button.addEventListener('click', this.eventHandler.bind(this, callback, data)); this.elem.appendChild(button); } eventHandler(callback: ActionCallback, data: any) { if (callback) callback(data); } }