firesage
Version:
🔥 Extremely High Precision Typescript Wrapper for Firestore Web, Providing Unparalleled Type Safe and Dev Experience
11 lines (10 loc) • 1.01 kB
TypeScript
export declare type StrictOmit<T, Key extends keyof T> = Omit<T, Key>;
export declare type StrictExclude<T, U extends T> = Exclude<T, U>;
declare type UnionToIntersection<U> = (U extends unknown ? (k: U) => void : never) extends (k: infer I) => void ? I : never;
export declare type IsUnion<T> = [T] extends [UnionToIntersection<T>] ? false : true;
export declare const IsTrue: <T extends true>() => void;
export declare type IsSame<T, U> = (<G>() => G extends T ? 1 : 2) extends <G>() => G extends U ? 1 : 2 ? true : false;
export declare type IsEqual<T, U> = T extends U ? (U extends T ? true : false) : false;
export declare type OddNumber<X extends number, Y extends unknown[] = [1], Z extends number = never> = Y['length'] extends X ? Z | Y['length'] : OddNumber<X, [1, 1, ...Y], Z | Y['length']>;
export declare type EvenNumber<X extends number, Y extends unknown[] = [], Z extends number = never> = Y['length'] extends X ? Z | Y['length'] : OddNumber<X, [1, 1, ...Y], Z | Y['length']>;
export {};