Type Safe Event Fields
Usage:
class MyThing {
public FooEvent = new EventField<string>();
constructor() {
setInterval(_ => this.FooEvent.emit("foo"), 1000);
}
}
let thing = new MyThing();
thing.FooEvent.on((payload) => {
console.log(payload);
});