@lspriv/plugin-taro
Version:
小程序日历组件Taro插件
15 lines (14 loc) • 1.01 kB
TypeScript
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 {};