import type { EmptyArr, EmptyObject } from '../../mod.js'; import { Def } from '../../mod.js'; /** ## Default : 提供一个默认值数据 @example Usage : interface ```ts const default_data: Default = { default: () => 'default data', } const data = default_data.default() assert(data == 'default data') ``` @example Usage : default implement ```ts const res = match(value,[Default.default(),'jiojio']) assert(res) ``` @category Interface */ export interface Default { default(): T; } /** ## `implements_default` : duck type to judge Default type @category Interface */ export declare function implements_default(value: unknown): value is Default; type DefaultRsult = T extends number ? 0 : T extends string ? '' : T extends bigint ? bigint : T extends boolean ? boolean : T extends () => any ? () => void : T extends null ? null : T extends undefined ? undefined : T extends Array ? EmptyArr : T extends Default ? R : Def; interface DefaultValue extends Default { function: () => void; number: number; string: string; object: EmptyObject; array: EmptyArr; bigint: bigint; boolean: boolean; null: null; underfind: undefined; /** ### `match` : 为基础类型匹配默认值 */ match: (inp: T) => T extends 'bigint' ? bigint : T extends 'boolean' ? boolean : T extends 'number' ? 0 : T extends 'string' ? '' : T extends 'function' ? () => void : T extends 'object' ? EmptyObject : T extends 'array' ? EmptyArr : T extends 'null' ? null : T extends 'undefined' ? undefined : never; /** ### `of` : 求出某个数据类型的默认数据 + 如果没有默认实现的数据,则返回{@link Def} @example Usage ```ts class Demo { constructor(public name: string) {} static default(): Demo { return new Demo('default') } } assert(equal(Default.of(Demo).name, 'default')) ``` */ of(d: T): DefaultRsult; } /** Default : 基本类型的Default实现 */ export declare const Default: DefaultValue; export {}; //# sourceMappingURL=default.d.ts.map