export type AnyType = any; export type AnyList = AnyType[]; export type AnyFunction = (...args: AnyList) => AnyType; export type AnyConstructor = new (...args: AnyList) => AnyType; export type PrependTuple = [ Item, ...Tuple ]; export type AppendTuple = [ ...Tuple, Item ]; export type IntersectTuple = [...(Target[number] & Pool[number])[]]; export type Stringify = Source extends string | number | bigint | boolean ? `${Source}` : FailedReplaceMent; export type StringifyTuple = Source extends [infer First] ? `${Stringify}` : Source extends [infer First, infer Last] ? `${Stringify},${Stringify}` : Source extends [infer First, ...infer Others, infer Last] ? Others extends readonly AnyType[] ? `${Stringify},${StringifyTuple},${Stringify}` : `${Stringify},${FailedReplaceMent},${Stringify}` : FailedReplaceMent; export type ObjectAssign = Omit & Overrides;