Urara-Blog/node_modules/.pnpm-store/v3/files/3f/dbdd4a047ad37514d1891e249f091140aace3f06b479a67ef0d54045836402a07a3860d85e2e15f332f9e56a543715554eb5afac98350cab04b4912aacc421
2022-08-14 01:14:53 +08:00

30 lines
913 B
Text

/**
* Base type that handlers extend from
*/
export type Handler = (...props: unknown[]) => unknown
/**
* Handle values based on a property.
*
* @param key key
* @param options options
* @returns handler
*/
export declare function zwitch<
KnownHandler extends Handler = (...parameters: unknown[]) => void,
UnknownHandler extends Handler = (...parameters: unknown[]) => void,
InvalidHandler extends Handler = (...parameters: unknown[]) => void
>(
key: string,
options?: {
unknown?: UnknownHandler
invalid?: InvalidHandler
handlers?: Record<string, KnownHandler>
}
): {
unknown: UnknownHandler
invalid: InvalidHandler
handlers: Record<string, KnownHandler>
(...parameters: Parameters<UnknownHandler>): ReturnType<UnknownHandler>
(...parameters: Parameters<InvalidHandler>): ReturnType<InvalidHandler>
(...parameters: Parameters<KnownHandler>): ReturnType<KnownHandler>
}