EVT
v2
Search…
⌃K
Links

Evt.loosenType(evt)

This is the identity function with special type annotations.
Swipe the type argument with a superset without giving up type safety.
If A is assignable to B ⇒ Evt<A> is assignable to Evt<B>
e.g:Evt<1|2|3> is assignable to Evt<number> however typescript wont let you do this assignation. This is where Evt.loosenType come in handy.
import { Evt } from "evt";
​
declare const evFooBar: Evt<"FOO" | "BAR">;
declare function myFunc(evtText: Evt<string>): void;
​
myFunc(evtFooBar); //Gives a type error;
myFunc(Evt.loosenType(evtFooBar)); //OK