Comment on page
Evt.factorize(evt)
This is the identity function with special type annotations.
If you have a variable that is either an
Evt
that post A
or an Evt
that post B
you have an event that post A or B
.In other words
Evt<A> | Evt<B>
is assignable to Evt<A | B >.
This method implements this property.import { Evt, VoidEvt, matchVoid } from "evt";
declare evt: Evt<string> | Evt<number> | VoidEvt = Evt.create<any>();
evt.attach(data=> { }); // TS ERROR
Evt.factorize(evt) // OK, return Evt<string | number | void>
.attach(data=> { // data is string | number | void
//To test if data is void
if( matchVoid(data) ){
return;
}
//Here data is string | number.
})
;
Last modified 9mo ago