ts-cast
Version:
Runtime typechecking
44 lines (43 loc) • 9.4 kB
TypeScript
import { Caster, CasterFn } from '../engine/types';
export declare const union: {
<A, B>(casterA: CasterFn<A>, casterB: CasterFn<B>): Caster<A | B>;
<A, B, C>(casterA: CasterFn<A>, casterB: CasterFn<B>, casterC: CasterFn<C>): Caster<A | B | C>;
<A, B, C, D>(casterA: CasterFn<A>, casterB: CasterFn<B>, casterC: CasterFn<C>, casterD: CasterFn<D>): Caster<A | B | C | D>;
<A, B, C, D, E>(casterA: CasterFn<A>, casterB: CasterFn<B>, casterC: CasterFn<C>, casterD: CasterFn<D>, casterE: CasterFn<E>): Caster<A | B | C | D | E>;
<A, B, C, D, E, F>(casterA: CasterFn<A>, casterB: CasterFn<B>, casterC: CasterFn<C>, casterD: CasterFn<D>, casterE: CasterFn<E>, casterF: CasterFn<F>): Caster<A | B | C | D | E | F>;
<A, B, C, D, E, F, G>(casterA: CasterFn<A>, casterB: CasterFn<B>, casterC: CasterFn<C>, casterD: CasterFn<D>, casterE: CasterFn<E>, casterF: CasterFn<F>, casterG: CasterFn<G>): Caster<A | B | C | D | E | F | G>;
<A, B, C, D, E, F, G, H>(casterA: CasterFn<A>, casterB: CasterFn<B>, casterC: CasterFn<C>, casterD: CasterFn<D>, casterE: CasterFn<E>, casterF: CasterFn<F>, casterG: CasterFn<G>, casterH: CasterFn<H>): Caster<A | B | C | D | E | F | G | H>;
<A, B, C, D, E, F, G, H, I>(casterA: CasterFn<A>, casterB: CasterFn<B>, casterC: CasterFn<C>, casterD: CasterFn<D>, casterE: CasterFn<E>, casterF: CasterFn<F>, casterG: CasterFn<G>, casterH: CasterFn<H>, casterI: CasterFn<I>): Caster<A | B | C | D | E | F | G | H | I>;
<A, B, C, D, E, F, G, H, I, J>(casterA: CasterFn<A>, casterB: CasterFn<B>, casterC: CasterFn<C>, casterD: CasterFn<D>, casterE: CasterFn<E>, casterF: CasterFn<F>, casterG: CasterFn<G>, casterH: CasterFn<H>, casterI: CasterFn<I>, casterJ: CasterFn<J>): Caster<A | B | C | D | E | F | G | H | I | J>;
<A, B, C, D, E, F, G, H, I, J, K>(casterA: CasterFn<A>, casterB: CasterFn<B>, casterC: CasterFn<C>, casterD: CasterFn<D>, casterE: CasterFn<E>, casterF: CasterFn<F>, casterG: CasterFn<G>, casterH: CasterFn<H>, casterI: CasterFn<I>, casterJ: CasterFn<J>, casterK: CasterFn<K>): Caster<A | B | C | D | E | F | G | H | I | J | K>;
<A, B, C, D, E, F, G, H, I, J, K, L>(casterA: CasterFn<A>, casterB: CasterFn<B>, casterC: CasterFn<C>, casterD: CasterFn<D>, casterE: CasterFn<E>, casterF: CasterFn<F>, casterG: CasterFn<G>, casterH: CasterFn<H>, casterI: CasterFn<I>, casterJ: CasterFn<J>, casterK: CasterFn<K>, casterL: CasterFn<L>): Caster<A | B | C | D | E | F | G | H | I | J | K | L>;
<A, B, C, D, E, F, G, H, I, J, K, L, M>(casterA: CasterFn<A>, casterB: CasterFn<B>, casterC: CasterFn<C>, casterD: CasterFn<D>, casterE: CasterFn<E>, casterF: CasterFn<F>, casterG: CasterFn<G>, casterH: CasterFn<H>, casterI: CasterFn<I>, casterJ: CasterFn<J>, casterK: CasterFn<K>, casterL: CasterFn<L>, casterM: CasterFn<M>): Caster<A | B | C | D | E | F | G | H | I | J | K | L | M>;
};
export declare const firstOf: {
<A, B>(casterA: CasterFn<A>, casterB: CasterFn<B>): Caster<A | B>;
<A_1, B_1, C>(casterA: CasterFn<A_1>, casterB: CasterFn<B_1>, casterC: CasterFn<C>): Caster<A_1 | B_1 | C>;
<A_2, B_2, C_1, D>(casterA: CasterFn<A_2>, casterB: CasterFn<B_2>, casterC: CasterFn<C_1>, casterD: CasterFn<D>): Caster<A_2 | B_2 | C_1 | D>;
<A_3, B_3, C_2, D_1, E>(casterA: CasterFn<A_3>, casterB: CasterFn<B_3>, casterC: CasterFn<C_2>, casterD: CasterFn<D_1>, casterE: CasterFn<E>): Caster<A_3 | B_3 | C_2 | D_1 | E>;
<A_4, B_4, C_3, D_2, E_1, F>(casterA: CasterFn<A_4>, casterB: CasterFn<B_4>, casterC: CasterFn<C_3>, casterD: CasterFn<D_2>, casterE: CasterFn<E_1>, casterF: CasterFn<F>): Caster<A_4 | B_4 | C_3 | D_2 | E_1 | F>;
<A_5, B_5, C_4, D_3, E_2, F_1, G>(casterA: CasterFn<A_5>, casterB: CasterFn<B_5>, casterC: CasterFn<C_4>, casterD: CasterFn<D_3>, casterE: CasterFn<E_2>, casterF: CasterFn<F_1>, casterG: CasterFn<G>): Caster<A_5 | B_5 | C_4 | D_3 | E_2 | F_1 | G>;
<A_6, B_6, C_5, D_4, E_3, F_2, G_1, H>(casterA: CasterFn<A_6>, casterB: CasterFn<B_6>, casterC: CasterFn<C_5>, casterD: CasterFn<D_4>, casterE: CasterFn<E_3>, casterF: CasterFn<F_2>, casterG: CasterFn<G_1>, casterH: CasterFn<H>): Caster<A_6 | B_6 | C_5 | D_4 | E_3 | F_2 | G_1 | H>;
<A_7, B_7, C_6, D_5, E_4, F_3, G_2, H_1, I>(casterA: CasterFn<A_7>, casterB: CasterFn<B_7>, casterC: CasterFn<C_6>, casterD: CasterFn<D_5>, casterE: CasterFn<E_4>, casterF: CasterFn<F_3>, casterG: CasterFn<G_2>, casterH: CasterFn<H_1>, casterI: CasterFn<I>): Caster<A_7 | B_7 | C_6 | D_5 | E_4 | F_3 | G_2 | H_1 | I>;
<A_8, B_8, C_7, D_6, E_5, F_4, G_3, H_2, I_1, J>(casterA: CasterFn<A_8>, casterB: CasterFn<B_8>, casterC: CasterFn<C_7>, casterD: CasterFn<D_6>, casterE: CasterFn<E_5>, casterF: CasterFn<F_4>, casterG: CasterFn<G_3>, casterH: CasterFn<H_2>, casterI: CasterFn<I_1>, casterJ: CasterFn<J>): Caster<A_8 | B_8 | C_7 | D_6 | E_5 | F_4 | G_3 | H_2 | I_1 | J>;
<A_9, B_9, C_8, D_7, E_6, F_5, G_4, H_3, I_2, J_1, K>(casterA: CasterFn<A_9>, casterB: CasterFn<B_9>, casterC: CasterFn<C_8>, casterD: CasterFn<D_7>, casterE: CasterFn<E_6>, casterF: CasterFn<F_5>, casterG: CasterFn<G_4>, casterH: CasterFn<H_3>, casterI: CasterFn<I_2>, casterJ: CasterFn<J_1>, casterK: CasterFn<K>): Caster<A_9 | B_9 | C_8 | D_7 | E_6 | F_5 | G_4 | H_3 | I_2 | J_1 | K>;
<A_10, B_10, C_9, D_8, E_7, F_6, G_5, H_4, I_3, J_2, K_1, L>(casterA: CasterFn<A_10>, casterB: CasterFn<B_10>, casterC: CasterFn<C_9>, casterD: CasterFn<D_8>, casterE: CasterFn<E_7>, casterF: CasterFn<F_6>, casterG: CasterFn<G_5>, casterH: CasterFn<H_4>, casterI: CasterFn<I_3>, casterJ: CasterFn<J_2>, casterK: CasterFn<K_1>, casterL: CasterFn<L>): Caster<A_10 | B_10 | C_9 | D_8 | E_7 | F_6 | G_5 | H_4 | I_3 | J_2 | K_1 | L>;
<A_11, B_11, C_10, D_9, E_8, F_7, G_6, H_5, I_4, J_3, K_2, L_1, M>(casterA: CasterFn<A_11>, casterB: CasterFn<B_11>, casterC: CasterFn<C_10>, casterD: CasterFn<D_9>, casterE: CasterFn<E_8>, casterF: CasterFn<F_7>, casterG: CasterFn<G_6>, casterH: CasterFn<H_5>, casterI: CasterFn<I_4>, casterJ: CasterFn<J_3>, casterK: CasterFn<K_2>, casterL: CasterFn<L_1>, casterM: CasterFn<M>): Caster<A_11 | B_11 | C_10 | D_9 | E_8 | F_7 | G_6 | H_5 | I_4 | J_3 | K_2 | L_1 | M>;
};
export declare const oneOf: {
<A, B>(casterA: CasterFn<A>, casterB: CasterFn<B>): Caster<A | B>;
<A_1, B_1, C>(casterA: CasterFn<A_1>, casterB: CasterFn<B_1>, casterC: CasterFn<C>): Caster<A_1 | B_1 | C>;
<A_2, B_2, C_1, D>(casterA: CasterFn<A_2>, casterB: CasterFn<B_2>, casterC: CasterFn<C_1>, casterD: CasterFn<D>): Caster<A_2 | B_2 | C_1 | D>;
<A_3, B_3, C_2, D_1, E>(casterA: CasterFn<A_3>, casterB: CasterFn<B_3>, casterC: CasterFn<C_2>, casterD: CasterFn<D_1>, casterE: CasterFn<E>): Caster<A_3 | B_3 | C_2 | D_1 | E>;
<A_4, B_4, C_3, D_2, E_1, F>(casterA: CasterFn<A_4>, casterB: CasterFn<B_4>, casterC: CasterFn<C_3>, casterD: CasterFn<D_2>, casterE: CasterFn<E_1>, casterF: CasterFn<F>): Caster<A_4 | B_4 | C_3 | D_2 | E_1 | F>;
<A_5, B_5, C_4, D_3, E_2, F_1, G>(casterA: CasterFn<A_5>, casterB: CasterFn<B_5>, casterC: CasterFn<C_4>, casterD: CasterFn<D_3>, casterE: CasterFn<E_2>, casterF: CasterFn<F_1>, casterG: CasterFn<G>): Caster<A_5 | B_5 | C_4 | D_3 | E_2 | F_1 | G>;
<A_6, B_6, C_5, D_4, E_3, F_2, G_1, H>(casterA: CasterFn<A_6>, casterB: CasterFn<B_6>, casterC: CasterFn<C_5>, casterD: CasterFn<D_4>, casterE: CasterFn<E_3>, casterF: CasterFn<F_2>, casterG: CasterFn<G_1>, casterH: CasterFn<H>): Caster<A_6 | B_6 | C_5 | D_4 | E_3 | F_2 | G_1 | H>;
<A_7, B_7, C_6, D_5, E_4, F_3, G_2, H_1, I>(casterA: CasterFn<A_7>, casterB: CasterFn<B_7>, casterC: CasterFn<C_6>, casterD: CasterFn<D_5>, casterE: CasterFn<E_4>, casterF: CasterFn<F_3>, casterG: CasterFn<G_2>, casterH: CasterFn<H_1>, casterI: CasterFn<I>): Caster<A_7 | B_7 | C_6 | D_5 | E_4 | F_3 | G_2 | H_1 | I>;
<A_8, B_8, C_7, D_6, E_5, F_4, G_3, H_2, I_1, J>(casterA: CasterFn<A_8>, casterB: CasterFn<B_8>, casterC: CasterFn<C_7>, casterD: CasterFn<D_6>, casterE: CasterFn<E_5>, casterF: CasterFn<F_4>, casterG: CasterFn<G_3>, casterH: CasterFn<H_2>, casterI: CasterFn<I_1>, casterJ: CasterFn<J>): Caster<A_8 | B_8 | C_7 | D_6 | E_5 | F_4 | G_3 | H_2 | I_1 | J>;
<A_9, B_9, C_8, D_7, E_6, F_5, G_4, H_3, I_2, J_1, K>(casterA: CasterFn<A_9>, casterB: CasterFn<B_9>, casterC: CasterFn<C_8>, casterD: CasterFn<D_7>, casterE: CasterFn<E_6>, casterF: CasterFn<F_5>, casterG: CasterFn<G_4>, casterH: CasterFn<H_3>, casterI: CasterFn<I_2>, casterJ: CasterFn<J_1>, casterK: CasterFn<K>): Caster<A_9 | B_9 | C_8 | D_7 | E_6 | F_5 | G_4 | H_3 | I_2 | J_1 | K>;
<A_10, B_10, C_9, D_8, E_7, F_6, G_5, H_4, I_3, J_2, K_1, L>(casterA: CasterFn<A_10>, casterB: CasterFn<B_10>, casterC: CasterFn<C_9>, casterD: CasterFn<D_8>, casterE: CasterFn<E_7>, casterF: CasterFn<F_6>, casterG: CasterFn<G_5>, casterH: CasterFn<H_4>, casterI: CasterFn<I_3>, casterJ: CasterFn<J_2>, casterK: CasterFn<K_1>, casterL: CasterFn<L>): Caster<A_10 | B_10 | C_9 | D_8 | E_7 | F_6 | G_5 | H_4 | I_3 | J_2 | K_1 | L>;
<A_11, B_11, C_10, D_9, E_8, F_7, G_6, H_5, I_4, J_3, K_2, L_1, M>(casterA: CasterFn<A_11>, casterB: CasterFn<B_11>, casterC: CasterFn<C_10>, casterD: CasterFn<D_9>, casterE: CasterFn<E_8>, casterF: CasterFn<F_7>, casterG: CasterFn<G_6>, casterH: CasterFn<H_5>, casterI: CasterFn<I_4>, casterJ: CasterFn<J_3>, casterK: CasterFn<K_2>, casterL: CasterFn<L_1>, casterM: CasterFn<M>): Caster<A_11 | B_11 | C_10 | D_9 | E_8 | F_7 | G_6 | H_5 | I_4 | J_3 | K_2 | L_1 | M>;
};