perf: ts type perf
parent
f4140b9c63
commit
99ac4780d6
|
@ -13,12 +13,15 @@ export type MonthPickerProps = Omit<PickerDateProps<Date>, 'picker'> & ExtraDate
|
|||
export type WeekPickerProps = Omit<PickerDateProps<Date>, 'picker'> & ExtraDatePickerProps<Date>;
|
||||
export type RangePickerProps = BaseRangePickerProps<Date> & ExtraRangePickerProps<Date>;
|
||||
|
||||
const DatePicker = generatePicker<Date>(dataFnsGenerateConfig);
|
||||
const { DatePicker, WeekPicker, MonthPicker, YearPicker, TimePicker, QuarterPicker, RangePicker } =
|
||||
generatePicker<Date>(dataFnsGenerateConfig);
|
||||
|
||||
const RangePicker = DatePicker.RangePicker;
|
||||
const MonthPicker = DatePicker.MonthPicker;
|
||||
const WeekPicker = DatePicker.WeekPicker;
|
||||
const QuarterPicker = DatePicker.QuarterPicker;
|
||||
DatePicker.WeekPicker = WeekPicker;
|
||||
DatePicker.MonthPicker = MonthPicker;
|
||||
DatePicker.YearPicker = YearPicker;
|
||||
DatePicker.RangePicker = RangePicker;
|
||||
DatePicker.TimePicker = TimePicker;
|
||||
DatePicker.QuarterPicker = QuarterPicker;
|
||||
|
||||
/* istanbul ignore next */
|
||||
DatePicker.install = function (app: App) {
|
||||
|
|
|
@ -14,12 +14,15 @@ export type MonthPickerProps = Omit<PickerDateProps<Dayjs>, 'picker'> & ExtraDat
|
|||
export type WeekPickerProps = Omit<PickerDateProps<Dayjs>, 'picker'> & ExtraDatePickerProps<Dayjs>;
|
||||
export type RangePickerProps = BaseRangePickerProps<Dayjs> & ExtraRangePickerProps<Dayjs>;
|
||||
|
||||
const DatePicker = generatePicker<Dayjs>(dayjsGenerateConfig);
|
||||
const { DatePicker, WeekPicker, MonthPicker, YearPicker, TimePicker, QuarterPicker, RangePicker } =
|
||||
generatePicker<Dayjs>(dayjsGenerateConfig);
|
||||
|
||||
const RangePicker = DatePicker.RangePicker;
|
||||
const MonthPicker = DatePicker.MonthPicker;
|
||||
const WeekPicker = DatePicker.WeekPicker;
|
||||
const QuarterPicker = DatePicker.QuarterPicker;
|
||||
DatePicker.WeekPicker = WeekPicker;
|
||||
DatePicker.MonthPicker = MonthPicker;
|
||||
DatePicker.YearPicker = YearPicker;
|
||||
DatePicker.RangePicker = RangePicker;
|
||||
DatePicker.TimePicker = TimePicker;
|
||||
DatePicker.QuarterPicker = QuarterPicker;
|
||||
|
||||
/* istanbul ignore next */
|
||||
DatePicker.install = function (app: App) {
|
||||
|
|
|
@ -17,7 +17,7 @@ import type { ExtraDatePickerProps } from './props';
|
|||
import { commonProps, datePickerProps } from './props';
|
||||
import devWarning from '../../vc-util/devWarning';
|
||||
|
||||
export default function generatePicker<DateType>(
|
||||
export default function generateSinglePicker<DateType>(
|
||||
generateConfig: GenerateConfig<DateType>,
|
||||
extraProps: Record<string, any> = {},
|
||||
) {
|
||||
|
@ -238,5 +238,19 @@ export default function generatePicker<DateType>(
|
|||
'AQuarterPicker',
|
||||
);
|
||||
|
||||
return { DatePicker, WeekPicker, MonthPicker, YearPicker, TimePicker, QuarterPicker };
|
||||
return {
|
||||
DatePicker,
|
||||
WeekPicker,
|
||||
MonthPicker,
|
||||
YearPicker,
|
||||
TimePicker,
|
||||
QuarterPicker,
|
||||
} as unknown as {
|
||||
DatePicker: DefineComponent<DatePickerProps>;
|
||||
WeekPicker: DefineComponent<Omit<PickerDateProps<DateType>, 'picker'>>;
|
||||
MonthPicker: DefineComponent<Omit<PickerDateProps<DateType>, 'picker'>>;
|
||||
YearPicker: DefineComponent<Omit<PickerDateProps<DateType>, 'picker'>>;
|
||||
TimePicker: DefineComponent<Omit<PickerTimeProps<DateType>, 'picker'>>;
|
||||
QuarterPicker: DefineComponent<Omit<PickerTimeProps<DateType>, 'picker'>>;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -17,6 +17,8 @@ import type { TimePickerLocale } from '../../time-picker';
|
|||
import generateSinglePicker from './generateSinglePicker';
|
||||
import generateRangePicker from './generateRangePicker';
|
||||
import type { SizeType } from '../../config-provider';
|
||||
import type { ExtraDatePickerProps, ExtraRangePickerProps } from './props';
|
||||
import type { DefineComponent } from 'vue';
|
||||
|
||||
export const Components = { button: PickerButton, rangeItem: PickerTag };
|
||||
|
||||
|
@ -129,32 +131,33 @@ function generatePicker<DateType>(
|
|||
generateConfig: GenerateConfig<DateType>,
|
||||
extraProps: Record<string, any> = {},
|
||||
) {
|
||||
type DatePickerProps = PickerProps<DateType> & ExtraDatePickerProps<DateType>;
|
||||
// =========================== Picker ===========================
|
||||
const { DatePicker, WeekPicker, MonthPicker, YearPicker, TimePicker, QuarterPicker } =
|
||||
generateSinglePicker(generateConfig, extraProps);
|
||||
generateSinglePicker<DateType>(generateConfig, extraProps);
|
||||
|
||||
// ======================== Range Picker ========================
|
||||
const RangePicker = generateRangePicker(generateConfig, extraProps);
|
||||
const RangePicker = generateRangePicker<DateType>(generateConfig, extraProps);
|
||||
|
||||
// =========================== Export ===========================
|
||||
type MergedDatePickerType = typeof DatePicker & {
|
||||
WeekPicker: typeof WeekPicker;
|
||||
MonthPicker: typeof MonthPicker;
|
||||
YearPicker: typeof YearPicker;
|
||||
RangePicker: typeof RangePicker;
|
||||
TimePicker: typeof TimePicker;
|
||||
QuarterPicker: typeof QuarterPicker;
|
||||
// 类型过于复杂,使用 as 避免 TS7056 错误
|
||||
// error TS7056: The inferred type of this node exceeds the maximum length the compiler will serialize. An explicit type annotation is needed.
|
||||
return {
|
||||
DatePicker,
|
||||
WeekPicker,
|
||||
MonthPicker,
|
||||
YearPicker,
|
||||
TimePicker,
|
||||
QuarterPicker,
|
||||
RangePicker,
|
||||
} as unknown as {
|
||||
DatePicker: DefineComponent<DatePickerProps>;
|
||||
WeekPicker: DefineComponent<Omit<PickerDateProps<DateType>, 'picker'>>;
|
||||
MonthPicker: DefineComponent<Omit<PickerDateProps<DateType>, 'picker'>>;
|
||||
YearPicker: DefineComponent<Omit<PickerDateProps<DateType>, 'picker'>>;
|
||||
TimePicker: DefineComponent<Omit<PickerTimeProps<DateType>, 'picker'>>;
|
||||
QuarterPicker: DefineComponent<Omit<PickerTimeProps<DateType>, 'picker'>>;
|
||||
RangePicker: DefineComponent<RangePickerProps<DateType> & ExtraRangePickerProps<DateType>>;
|
||||
};
|
||||
|
||||
const MergedDatePicker = DatePicker as MergedDatePickerType;
|
||||
MergedDatePicker.WeekPicker = WeekPicker;
|
||||
MergedDatePicker.MonthPicker = MonthPicker;
|
||||
MergedDatePicker.YearPicker = YearPicker;
|
||||
MergedDatePicker.RangePicker = RangePicker;
|
||||
MergedDatePicker.TimePicker = TimePicker;
|
||||
MergedDatePicker.QuarterPicker = QuarterPicker;
|
||||
|
||||
return MergedDatePicker;
|
||||
}
|
||||
|
||||
export default generatePicker;
|
||||
|
|
|
@ -16,12 +16,15 @@ export type WeekPickerProps = Omit<PickerDateProps<Moment>, 'picker'> &
|
|||
ExtraDatePickerProps<Moment>;
|
||||
export type RangePickerProps = BaseRangePickerProps<Moment> & ExtraRangePickerProps<Moment>;
|
||||
|
||||
const DatePicker = generatePicker<Moment>(momentGenerateConfig);
|
||||
const { DatePicker, WeekPicker, MonthPicker, YearPicker, TimePicker, QuarterPicker, RangePicker } =
|
||||
generatePicker<Moment>(momentGenerateConfig);
|
||||
|
||||
const RangePicker = DatePicker.RangePicker;
|
||||
const MonthPicker = DatePicker.MonthPicker;
|
||||
const WeekPicker = DatePicker.WeekPicker;
|
||||
const QuarterPicker = DatePicker.QuarterPicker;
|
||||
DatePicker.WeekPicker = WeekPicker;
|
||||
DatePicker.MonthPicker = MonthPicker;
|
||||
DatePicker.YearPicker = YearPicker;
|
||||
DatePicker.RangePicker = RangePicker;
|
||||
DatePicker.TimePicker = TimePicker;
|
||||
DatePicker.QuarterPicker = QuarterPicker;
|
||||
|
||||
/* istanbul ignore next */
|
||||
DatePicker.install = function (app: App) {
|
||||
|
|
Loading…
Reference in New Issue