Browse Source

types(BasicForm): components props 增加 Ref 类型定义

main
刘凯 11 months ago
parent
commit
a532e9c318
  1. 16
      src/components/Form/src/types/index.ts

16
src/components/Form/src/types/index.ts

@ -1,4 +1,4 @@
import type { Component, VNodeProps } from 'vue'
import type { Component, Ref, VNodeProps } from 'vue'
type ColSpanType = number | string
export interface ColEx {
@ -92,7 +92,7 @@ type MethodsNameToCamelCase<
: `${M}${T}`
type MethodsNameTransform<T> = {
[K in keyof T as K extends `on${string}` ? MethodsNameToCamelCase<K> : never]: T[K];
[K in keyof T as K extends `on${string}` ? MethodsNameToCamelCase<K> : never]: T[K]
}
type ExtractPropTypes<T extends Component> = T extends new (...args: any) => any
@ -119,10 +119,10 @@ interface _CustomComponents {
}
type CustomComponents<T = _CustomComponents> = {
[K in keyof T]: T[K] & MethodsNameTransform<T[K]>;
[K in keyof T]: T[K] & MethodsNameTransform<T[K]>
}
export interface ComponentProps {
interface _ComponentProps {
Input: ExtractPropTypes<(typeof import('ant-design-vue/es/input'))['default']>
InputGroup: ExtractPropTypes<(typeof import('ant-design-vue/es/input'))['InputGroup']>
InputPassword: ExtractPropTypes<(typeof import('ant-design-vue/es/input'))['InputPassword']>
@ -164,3 +164,11 @@ export interface ComponentProps {
CronTab: CustomComponents['CronTab']
ApiCheckboxGroup: CustomComponents['ApiCheckboxGroup'] & ComponentProps['CheckboxGroup']
}
type ExtendRefTypes<T> = T extends any ? Ref<T> : never
export type ComponentProps = {
[K in keyof _ComponentProps]: {
[Key in keyof _ComponentProps[K]]: _ComponentProps[K][Key] | ExtendRefTypes<_ComponentProps[K][Key]>
}
}

Loading…
Cancel
Save