element-pro-components
Version:
a component library for Vue 3 base on element-plus
28 lines (27 loc) • 996 B
TypeScript
import { Ref } from 'vue';
import type { UnwrapNestedRefs } from 'vue';
import type { MaybeRef } from '../types/index';
/**
* toggle show
* @param state init value (default `false`)
*/
export declare function useShow(state?: MaybeRef<boolean>): {
show: Ref<boolean>;
toggleShow: () => void;
};
/**
* emit value to parent
* @param key value key
* @param emit update function
*/
export declare function useEmitValue(key?: string, emit?: (name: string, ...args: unknown[]) => void): (value: unknown) => void;
type UseSplitReactive<T extends object, K extends Array<keyof T>[]> = {
[P in keyof K]: P extends `${number}` ? UnwrapNestedRefs<Pick<T, Extract<K[P], Array<keyof T>>[number]>> : never;
};
/**
* split reactive object to multiple reactive objects
* @param reactive the reactive object in vue
* @param args split keys
*/
export declare function useSplitReactive<T extends object, K extends Array<keyof T>[]>(reactive: T, ...args: K): UseSplitReactive<T, K>;
export {};