yanzhen-design-vue
Version:
45 lines (44 loc) • 2.85 kB
TypeScript
import { DefaultOptionType, EpOptionKey, ExtractOptionType, ExtractPropType, OptionType } from '@yanzhen-libs/utils-vue';
export declare function optionProp<Option extends Record<keyof DefaultOptionType, any> = DefaultOptionType>(): {
readonly type: import('vue').PropType<Option[]>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
__epPropKey: true;
};
export type OptionProp<K extends string = string> = ReturnType<typeof optionProp<ExtractOptionType<K>>>;
export declare function optionKeyProp<K extends string>(key: K, values: K[]): {
readonly type: import('vue').PropType<import('@yanzhen-libs/utils-vue').EpPropMergeType<import('vue').PropType<string>, K, never>>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
__epPropKey: true;
};
export type OptionKeyProp<K extends string> = ReturnType<typeof optionKeyProp<K>>;
export declare function optionKeyProps<K extends string>(keys: (K | OptionType)[]): {
[K1 in `${EpOptionKey<K | OptionType>}Key`]: OptionKeyProp<EpOptionKey<K | OptionType>>;
};
export declare function optionsProps<K extends string = OptionType>(keys?: K[]): {
options: {
readonly type: import('vue').PropType<ExtractOptionType<"value" | "label" | "disabled" | "children" | K>[]>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
__epPropKey: true;
};
} & { [K1 in "valueKey" | "labelKey" | "disabledKey" | "childrenKey" | `${EpOptionKey<K>}Key`]: {
readonly type: import('vue').PropType<import('@yanzhen-libs/utils-vue').EpPropMergeType<import('vue').PropType<string>, EpOptionKey<"value" | "label" | "disabled" | "children" | K>, never>>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
__epPropKey: true;
}; } extends infer T extends import('@yanzhen-libs/utils-vue').EpInferProps ? { -readonly [K_1 in keyof T]: import('@yanzhen-libs/utils-vue').ExportProps<{
options: {
readonly type: import('vue').PropType<ExtractOptionType<"value" | "label" | "disabled" | "children" | K>[]>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
__epPropKey: true;
};
} & { [K1 in "valueKey" | "labelKey" | "disabledKey" | "childrenKey" | `${EpOptionKey<K>}Key`]: {
readonly type: import('vue').PropType<import('@yanzhen-libs/utils-vue').EpPropMergeType<import('vue').PropType<string>, EpOptionKey<"value" | "label" | "disabled" | "children" | K>, never>>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
__epPropKey: true;
}; }>[K_1]; } : never;
export type OptionsProps<K extends string> = ExtractPropType<ReturnType<typeof optionsProps<K | OptionType>>>;