UNPKG

@lspriv/plugin-taro

Version:

小程序日历组件Taro插件

15 lines (14 loc) 1.01 kB
import { CalendarProp, CalendarExport, PluginConstructor, LowerCamelToSnake, CalendarEventSimplified, CalendarCustomEvent } from '@lspriv/wx-calendar/lib'; import { type TaroEvent } from '@tarojs/runtime'; export type CalendarElementProps = { [P in keyof CalendarProp as LowerCamelToSnake<P, '-'>]?: WechatMiniprogram.Component.PropertyToData<CalendarProp[P]>; }; export type CalendarTaroEvent<T extends CalendarEventSimplified> = Omit<TaroEvent, 'mpEvent'> & { mpEvent: CalendarCustomEvent<T>; }; type CalendarElementEvents = { [P in CalendarEventSimplified as `on${Capitalize<P>}`]: (event: CalendarTaroEvent<P> | CalendarCustomEvent<P>) => void; }; type CalendarElementKeys = keyof CalendarElementProps | keyof CalendarElementEvents; export type ReactWxCalendarElement<Plugins extends PluginConstructor[] = []> = CalendarElementProps & Partial<CalendarElementEvents> & Omit<React.ClassAttributes<CalendarExport<Plugins>> & React.HTMLAttributes<HTMLElement>, CalendarElementKeys>; export {};