UNPKG

@typed/new-type

Version:
51 lines 2.77 kB
import { NewType } from './new-type'; export declare type Combine<A, B> = A extends NewType<infer AB, infer AT> ? B extends NewType<infer BB, infer BT> ? NewType<AB | BB, AT & BT> : never : never; export declare type Integer = NewType<number, 'Integer'>; export declare const isInteger: (value: number) => value is NewType<number, "Integer">; export declare type Zero = NewType<number, 'Zero'>; export declare const isZero: (value: number) => value is NewType<number, "Zero">; export declare type NonZero = NewType<number, 'NonZero'>; export declare const isNonZero: (value: number) => value is NewType<number, "NonZero">; export declare type NonZeroInteger = Combine<NonZero, Integer>; export declare const isNonZeroInteger: (value: number) => value is number & { readonly __TYPE__: never; }; export declare type Positive = NewType<number, 'Positive'>; export declare const isPositive: (value: number) => value is NewType<number, "Positive">; export declare type Negative = NewType<number, 'Negative'>; export declare const isNegative: (value: number) => value is NewType<number, "Negative">; export declare type NonNegative = Zero | Positive; export declare const isNonNegative: (value: number) => value is NonNegative; export declare type NonPositive = Zero | Negative; export declare const isNonPositive: (value: number) => value is NonPositive; export declare type PositiveInteger = Combine<Positive, Integer>; export declare const isPositiveInteger: (value: number) => value is number & { readonly __TYPE__: never; }; export declare type NegativeInteger = Combine<Negative, Integer>; export declare const isNegativeInteger: (value: number) => value is number & { readonly __TYPE__: never; }; export declare type NonNegativeInteger = Zero | PositiveInteger; export declare const isNonNegativeInteger: (value: number) => value is NonNegativeInteger; export declare type NonPositiveInteger = Zero | NegativeInteger; export declare const isNonPositiveInteger: (value: number) => value is NonNegativeInteger; export declare type EmptyString = NewType<string & { readonly length: Zero; }, 'EmptyString'>; export declare const isEmptyString: (value: string) => value is NewType<string & { readonly length: Zero; }, "EmptyString">; export declare type NonEmptyString = NewType<string & { readonly length: PositiveInteger; }, 'NonEmptyString'>; export declare const isNonEmptyString: (value: string) => value is NewType<string & { readonly length: PositiveInteger; }, "NonEmptyString">; export declare type Character = NewType<string & { readonly length: 1; }, 'Character'>; export declare const isCharacter: (value: string) => value is NewType<string & { readonly length: 1; }, "Character">; //# sourceMappingURL=new-types.d.ts.map