@typed/new-type
Version:
Types for validating constraints
51 lines • 2.77 kB
TypeScript
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