Skip to content

Commit 809244a

Browse files
fix(ui): loosen getMinDate/getMaxDate types to allow spread usage (fix: #17858) (#18047)
* fix(ui): loosen getMinData/getMaxData types to allow spread usage * style: apply some formatting to date util types * refactor: extract a new type DateInput to simplify date utils
1 parent 90d2a39 commit 809244a

File tree

1 file changed

+45
-34
lines changed

1 file changed

+45
-34
lines changed

ui/types/utils/date.d.ts

Lines changed: 45 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -38,72 +38,83 @@ export type DateUnitOptions =
3838
| "year"
3939
| "years";
4040

41+
export type DateInput = Date | number | string;
42+
4143
export namespace date {
4244
function isValid(date: number | string): boolean;
45+
4346
function extractDate(str: string, mask: string, locale?: DateLocale): Date;
47+
4448
function buildDate(options: DateOptions, utc?: boolean): Date;
49+
4550
function getDayOfWeek(date: Date): number;
46-
function getWeekOfYear(date: Date | number | string): number;
51+
52+
function getWeekOfYear(date: DateInput): number;
53+
4754
function isBetweenDates(
48-
date: Date | number | string,
49-
from: Date | number | string,
50-
to: Date | number | string,
55+
date: DateInput,
56+
from: DateInput,
57+
to: DateInput,
5158
opts?: { inclusiveFrom: boolean; inclusiveTo: boolean; onlyDate: boolean },
5259
): boolean;
53-
function addToDate(date: Date | number | string, options: DateOptions): Date;
54-
function subtractFromDate(
55-
date: Date | number | string,
56-
options: DateOptions,
57-
): Date;
60+
61+
function addToDate(date: DateInput, options: DateOptions): Date;
62+
63+
function subtractFromDate(date: DateInput, options: DateOptions): Date;
64+
5865
function adjustDate(
59-
date: Date | number | string,
66+
date: DateInput,
6067
options: DateOptions,
6168
utc?: boolean,
6269
): Date;
70+
6371
function startOfDate(
64-
date: Date | number | string,
72+
date: DateInput,
6573
option: DateUnitOptions,
6674
utc?: boolean,
6775
): Date;
76+
6877
function endOfDate(
69-
date: Date | number | string,
78+
date: DateInput,
7079
option: DateUnitOptions,
7180
utc?: boolean,
7281
): Date;
73-
function getMaxDate(
74-
date: Date | number | string,
75-
...args: (Date | number | string)[]
76-
): Date;
77-
function getMinDate(
78-
date: Date | number | string,
79-
...args: (Date | number | string)[]
80-
): Date;
82+
83+
function getMaxDate(...args: DateInput[]): Date;
84+
85+
function getMinDate(...args: DateInput[]): Date;
86+
8187
function getDateDiff(
82-
date: Date | number | string,
83-
subtract: Date | number | string,
88+
date: DateInput,
89+
subtract: DateInput,
8490
unit?: `${DateUnitOptions}s`,
8591
): number;
86-
function getDayOfYear(date: Date | number | string): number;
87-
function inferDateFormat(
88-
date: Date | number | string,
89-
): "date" | "number" | "string";
92+
93+
function getDayOfYear(date: DateInput): number;
94+
95+
function inferDateFormat(date: DateInput): "date" | "number" | "string";
96+
9097
function getDateBetween(
91-
date: Date | number | string,
92-
min?: Date | number | string,
93-
max?: Date | number | string,
98+
date: DateInput,
99+
min?: DateInput,
100+
max?: DateInput,
94101
): Date;
102+
95103
function isSameDate(
96-
date: Date | number | string,
97-
date2: Date | number | string,
104+
date: DateInput,
105+
date2: DateInput,
98106
unit?: DateUnitOptions,
99107
): boolean;
100-
function daysInMonth(date: Date | number | string): number;
108+
109+
function daysInMonth(date: DateInput): number;
110+
101111
function formatDate(
102-
date: Date | number | string | undefined,
112+
date: DateInput | undefined,
103113
format?: string,
104114
locale?: DateLocale,
105115
__forcedYear?: number,
106116
__forcedTimezoneOffset?: number,
107117
): string;
108-
function clone<D extends Date | number | string>(date: D): D;
118+
119+
function clone<D extends DateInput>(date: D): D;
109120
}

0 commit comments

Comments
 (0)