and<Guards>(...guards: Guards): (t: InputParametersToIntersection<Parameters<Guards[number]>>) => t is InputParametersToIntersection<Parameters<Guards[number]>> & IntersectionOfOutputTypes
Type parameters
Guards: Guard<any, any>[]
Parameters
Rest...guards: Guards
Returns (t: InputParametersToIntersection<Parameters<Guards[number]>>) => t is InputParametersToIntersection<Parameters<Guards[number]>> & IntersectionOfOutputTypes
(t: InputParametersToIntersection<Parameters<Guards[number]>>): t is InputParametersToIntersection<Parameters<Guards[number]>> & IntersectionOfOutputTypes
Returns t is InputParametersToIntersection<Parameters<Guards[number]>> & IntersectionOfOutputTypes
createFold
createFold<Types>(...guards: Guardify<Types>): { <R>(...funcs: Funcify<Types, R>): (s: AllTypes) => R; <R, S>(...funcs: Funcify<{[ key in string | number | symbol]: Extract<Types[key], S>}, R>): (s: S) => R }
Type parameters
Types: any[]
Parameters
Rest...guards: Guardify<Types>
Returns { <R>(...funcs: Funcify<Types, R>): (s: AllTypes) => R; <R, S>(...funcs: Funcify<{[ key in string | number | symbol]: Extract<Types[key], S>}, R>): (s: S) => R }
<R>(...funcs: Funcify<Types, R>): (s: AllTypes) => R
<R, S>(...funcs: Funcify<{[ key in string | number | symbol]: Extract<Types[key], S>}, R>): (s: S) => R
Type parameters
R
Parameters
Rest...funcs: Funcify<Types, R>
Returns (s: AllTypes) => R
(s: AllTypes): R
Parameters
s: AllTypes
Returns R
Type parameters
R
S: any
Parameters
Rest...funcs: Funcify<{[ key in string | number | symbol]: Extract<Types[key], S>}, R>
Returns (s: S) => R
(s: S): R
Parameters
s: S
Returns R
createFoldObject
createFoldObject<TypesRecord>(guards: {[ key in string | number | symbol]: Guard<any, TypesRecord[key]>}): { <R>(funcs: {[ key in string | number | symbol]: Func<TypesRecord[key], R>}): (s: AllTypes) => R; <R, S>(funcs: {[ key in string | number | symbol]: Func<Extract<S, TypesRecord[key]>, R>}): (s: S) => R }
Type parameters
TypesRecord: Record<string | number | symbol, any>
Parameters
guards: {[ key in string | number | symbol]: Guard<any, TypesRecord[key]>}
Returns { <R>(funcs: {[ key in string | number | symbol]: Func<TypesRecord[key], R>}): (s: AllTypes) => R; <R, S>(funcs: {[ key in string | number | symbol]: Func<Extract<S, TypesRecord[key]>, R>}): (s: S) => R }
<R>(funcs: {[ key in string | number | symbol]: Func<TypesRecord[key], R>}): (s: AllTypes) => R
<R, S>(funcs: {[ key in string | number | symbol]: Func<Extract<S, TypesRecord[key]>, R>}): (s: S) => R
Type parameters
R
Parameters
funcs: {[ key in string | number | symbol]: Func<TypesRecord[key], R>}
Returns (s: AllTypes) => R
(s: AllTypes): R
Parameters
s: AllTypes
Returns R
Type parameters
R
S: any
Parameters
funcs: {[ key in string | number | symbol]: Func<Extract<S, TypesRecord[key]>, R>}
Returns (s: S) => R
(s: S): R
Parameters
s: S
Returns R
not
not<A, B>(guard: Guard<A, B>): NotGuard<A, B>
Type parameters
A
B
Parameters
guard: Guard<A, B>
Returns NotGuard<A, B>
or
or<Guards>(...guards: Guards): (t: InputParametersToIntersection<Parameters<Guards[number]>>) => t is InputParametersToIntersection<Parameters<Guards[number]>> & GuardedType<Guards[number]>
Type parameters
Guards: Guard<any, any>[]
Parameters
Rest...guards: Guards
Returns (t: InputParametersToIntersection<Parameters<Guards[number]>>) => t is InputParametersToIntersection<Parameters<Guards[number]>> & GuardedType<Guards[number]>
(t: InputParametersToIntersection<Parameters<Guards[number]>>): t is InputParametersToIntersection<Parameters<Guards[number]>> & GuardedType<Guards[number]>