diff --git a/packages/components/date-picker/index.ts b/packages/components/date-picker/index.ts index 67047e20e4..a9058f0a84 100644 --- a/packages/components/date-picker/index.ts +++ b/packages/components/date-picker/index.ts @@ -13,3 +13,4 @@ export default _DatePicker export const ElDatePicker = _DatePicker export * from './src/constants' export * from './src/props/date-picker' +export type { DatePickerInstance } from './src/instance' diff --git a/packages/components/date-picker/src/date-picker.tsx b/packages/components/date-picker/src/date-picker.tsx index 90df8992db..36276f20a1 100644 --- a/packages/components/date-picker/src/date-picker.tsx +++ b/packages/components/date-picker/src/date-picker.tsx @@ -18,6 +18,7 @@ import { ROOT_PICKER_INJECTION_KEY } from './constants' import { datePickerProps } from './props/date-picker' import { getPanel } from './panel-utils' +import type { DatePickerExpose } from './instance' dayjs.extend(localeData) dayjs.extend(advancedFormat) @@ -43,7 +44,7 @@ export default defineComponent({ }) const commonPicker = ref>() - const refProps = { + const refProps: DatePickerExpose = { focus: (focusStartInput = true) => { commonPicker.value?.focus(focusStartInput) }, diff --git a/packages/components/date-picker/src/instance.ts b/packages/components/date-picker/src/instance.ts new file mode 100644 index 0000000000..4fcc5476a0 --- /dev/null +++ b/packages/components/date-picker/src/instance.ts @@ -0,0 +1,12 @@ +import type { ComponentPublicInstance } from 'vue' +import type { DatePickerProps } from './props/date-picker' + +export type DatePickerExpose = { + focus: (focusStartInput: boolean) => void + handleOpen: () => void + handleClose: () => void +} +export type DatePickerInstance = ComponentPublicInstance< + DatePickerProps, + DatePickerExpose +>