@antdv/pro-utils
Version:
@antdv/pro-utils
11 lines (10 loc) • 709 B
TypeScript
import type { ComputedRef, Ref, ShallowRef, WritableComputedRef } from 'vue';
export type Fn = () => void;
export type AnyFn = (...args: any[]) => any;
export type Promisify<T> = Promise<Awaited<T>>;
export type PromisifyFn<T extends AnyFn> = (...args: ArgumentsType<T>) => Promisify<ReturnType<T>>;
export type ArgumentsType<T> = T extends (...args: infer U) => any ? U : never;
export type MaybeRefOrGetter<T = any> = MaybeRef<T> | ComputedRef<T> | (() => T);
export type MaybeRef<T = any> = T | Ref<T> | ShallowRef<T> | WritableComputedRef<T>;
export type FunctionArgs<Args extends any[] = any[], Return = void> = (...args: Args) => Return;
export type ElementOf<T> = T extends Array<infer E> ? E : never;