Skip to content

Commit f97c3fd

Browse files
authored
Consistently allow Locale objects in locale list params (#52996)
1 parent aef29e4 commit f97c3fd

31 files changed

+936
-81
lines changed

src/lib/es2018.intl.d.ts

+4-3
Original file line numberDiff line numberDiff line change
@@ -29,12 +29,13 @@ declare namespace Intl {
2929
select(n: number): LDMLPluralRule;
3030
}
3131

32-
const PluralRules: {
32+
interface PluralRulesConstructor {
3333
new (locales?: string | string[], options?: PluralRulesOptions): PluralRules;
3434
(locales?: string | string[], options?: PluralRulesOptions): PluralRules;
35-
3635
supportedLocalesOf(locales: string | string[], options?: { localeMatcher?: "lookup" | "best fit"; }): string[];
37-
};
36+
}
37+
38+
const PluralRules: PluralRulesConstructor;
3839

3940
// We can only have one definition for 'type' in TypeScript, and so you can learn where the keys come from here:
4041
type ES2018NumberFormatPartType = "literal" | "nan" | "infinity" | "percent" | "integer" | "group" | "decimal" | "fraction" | "plusSign" | "minusSign" | "percentSign" | "currency" | "code" | "symbol" | "name";

src/lib/es2020.intl.d.ts

+36-16
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
/// <reference lib="es2018.intl" />
22
declare namespace Intl {
33
/**
4-
* [Unicode BCP 47 Locale Identifiers](https://unicode.org/reports/tr35/#Unicode_Language_and_Locale_Identifiers) definition.
4+
* A string that is a valid [Unicode BCP 47 Locale Identifier](https://unicode.org/reports/tr35/#Unicode_locale_identifier).
55
*
6-
* [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#locales_argument).
6+
* For example: "fa", "es-MX", "zh-Hant-TW".
7+
*
8+
* See [MDN - Intl - locales argument](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#locales_argument).
79
*/
810
type UnicodeBCP47LocaleIdentifier = string;
911

@@ -71,16 +73,9 @@ declare namespace Intl {
7173
type RelativeTimeFormatStyle = "long" | "short" | "narrow";
7274

7375
/**
74-
* [BCP 47 language tag](http://tools.ietf.org/html/rfc5646) definition.
76+
* The locale or locales to use
7577
*
76-
* [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#locales_argument).
77-
*/
78-
type BCP47LanguageTag = string;
79-
80-
/**
81-
* The locale(s) to use
82-
*
83-
* [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#locales_argument).
78+
* See [MDN - Intl - locales argument](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#locales_argument).
8479
*/
8580
type LocalesArgument = UnicodeBCP47LocaleIdentifier | Locale | readonly (UnicodeBCP47LocaleIdentifier | Locale)[] | undefined;
8681

@@ -200,7 +195,7 @@ declare namespace Intl {
200195
* [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/RelativeTimeFormat).
201196
*/
202197
new (
203-
locales?: UnicodeBCP47LocaleIdentifier | UnicodeBCP47LocaleIdentifier[],
198+
locales?: LocalesArgument,
204199
options?: RelativeTimeFormatOptions,
205200
): RelativeTimeFormat;
206201

@@ -223,7 +218,7 @@ declare namespace Intl {
223218
* [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/supportedLocalesOf).
224219
*/
225220
supportedLocalesOf(
226-
locales?: UnicodeBCP47LocaleIdentifier | UnicodeBCP47LocaleIdentifier[],
221+
locales?: LocalesArgument,
227222
options?: RelativeTimeFormatOptions,
228223
): UnicodeBCP47LocaleIdentifier[];
229224
};
@@ -294,7 +289,7 @@ declare namespace Intl {
294289
/** Attempts to remove information about the locale that would be added by calling `Locale.maximize()`. */
295290
minimize(): Locale;
296291
/** Returns the locale's full locale identifier string. */
297-
toString(): BCP47LanguageTag;
292+
toString(): UnicodeBCP47LocaleIdentifier;
298293
}
299294

300295
/**
@@ -312,7 +307,7 @@ declare namespace Intl {
312307
* [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale).
313308
*/
314309
const Locale: {
315-
new (tag: BCP47LanguageTag | Locale, options?: LocaleOptions): Locale;
310+
new (tag: UnicodeBCP47LocaleIdentifier | Locale, options?: LocaleOptions): Locale;
316311
};
317312

318313
type DisplayNamesFallback =
@@ -406,6 +401,31 @@ declare namespace Intl {
406401
*
407402
* [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames/supportedLocalesOf).
408403
*/
409-
supportedLocalesOf(locales?: LocalesArgument, options?: { localeMatcher?: RelativeTimeFormatLocaleMatcher; }): BCP47LanguageTag[];
404+
supportedLocalesOf(locales?: LocalesArgument, options?: { localeMatcher?: RelativeTimeFormatLocaleMatcher; }): UnicodeBCP47LocaleIdentifier[];
410405
};
406+
407+
interface CollatorConstructor {
408+
new (locales?: LocalesArgument, options?: CollatorOptions): Collator;
409+
(locales?: LocalesArgument, options?: CollatorOptions): Collator;
410+
supportedLocalesOf(locales: LocalesArgument, options?: CollatorOptions): string[];
411+
}
412+
413+
interface DateTimeFormatConstructor {
414+
new (locales?: LocalesArgument, options?: DateTimeFormatOptions): DateTimeFormat;
415+
(locales?: LocalesArgument, options?: DateTimeFormatOptions): DateTimeFormat;
416+
supportedLocalesOf(locales: LocalesArgument, options?: DateTimeFormatOptions): string[];
417+
}
418+
419+
interface NumberFormatConstructor {
420+
new (locales?: LocalesArgument, options?: NumberFormatOptions): NumberFormat;
421+
(locales?: LocalesArgument, options?: NumberFormatOptions): NumberFormat;
422+
supportedLocalesOf(locales: LocalesArgument, options?: NumberFormatOptions): string[];
423+
}
424+
425+
interface PluralRulesConstructor {
426+
new (locales?: LocalesArgument, options?: PluralRulesOptions): PluralRules;
427+
(locales?: LocalesArgument, options?: PluralRulesOptions): PluralRules;
428+
429+
supportedLocalesOf(locales: LocalesArgument, options?: { localeMatcher?: "lookup" | "best fit"; }): string[];
430+
}
411431
}

src/lib/es2020.string.d.ts

+14
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,18 @@ interface String {
77
* @param regexp A variable name or string literal containing the regular expression pattern and flags.
88
*/
99
matchAll(regexp: RegExp): IterableIterator<RegExpMatchArray>;
10+
11+
/** Converts all alphabetic characters to lowercase, taking into account the host environment's current locale. */
12+
toLocaleLowerCase(locales?: Intl.LocalesArgument): string;
13+
14+
/** Returns a string where all alphabetic characters have been converted to uppercase, taking into account the host environment's current locale. */
15+
toLocaleUpperCase(locales?: Intl.LocalesArgument): string;
16+
17+
/**
18+
* Determines whether two strings are equivalent in the current or specified locale.
19+
* @param that String to compare to target string
20+
* @param locales A locale string or array of locale strings that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used. This parameter must conform to BCP 47 standards; see the Intl.Collator object for details.
21+
* @param options An object that contains one or more properties that specify comparison options. see the Intl.Collator object for details.
22+
*/
23+
localeCompare(that: string, locales?: Intl.LocalesArgument, options?: Intl.CollatorOptions): number;
1024
}

src/lib/es2021.intl.d.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ declare namespace Intl {
125125
*
126126
* [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat).
127127
*/
128-
new (locales?: BCP47LanguageTag | BCP47LanguageTag[], options?: ListFormatOptions): ListFormat;
128+
new (locales?: LocalesArgument, options?: ListFormatOptions): ListFormat;
129129

130130
/**
131131
* Returns an array containing those of the provided locales that are
@@ -143,6 +143,6 @@ declare namespace Intl {
143143
*
144144
* [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat/supportedLocalesOf).
145145
*/
146-
supportedLocalesOf(locales: BCP47LanguageTag | BCP47LanguageTag[], options?: Pick<ListFormatOptions, "localeMatcher">): BCP47LanguageTag[];
146+
supportedLocalesOf(locales: LocalesArgument, options?: Pick<ListFormatOptions, "localeMatcher">): UnicodeBCP47LocaleIdentifier[];
147147
};
148148
}

src/lib/es2022.intl.d.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ declare namespace Intl {
7171
*
7272
* [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Segmenter).
7373
*/
74-
new (locales?: BCP47LanguageTag | BCP47LanguageTag[], options?: SegmenterOptions): Segmenter;
74+
new (locales?: LocalesArgument, options?: SegmenterOptions): Segmenter;
7575

7676
/**
7777
* Returns an array containing those of the provided locales that are supported without having to fall back to the runtime's default locale.
@@ -85,7 +85,7 @@ declare namespace Intl {
8585
*
8686
* [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Segmenter/supportedLocalesOf)
8787
*/
88-
supportedLocalesOf(locales: BCP47LanguageTag | BCP47LanguageTag[], options?: Pick<SegmenterOptions, "localeMatcher">): BCP47LanguageTag[];
88+
supportedLocalesOf(locales: LocalesArgument, options?: Pick<SegmenterOptions, "localeMatcher">): UnicodeBCP47LocaleIdentifier[];
8989
};
9090

9191
/**

src/lib/es5.d.ts

+15-6
Original file line numberDiff line numberDiff line change
@@ -4400,11 +4400,14 @@ declare namespace Intl {
44004400
compare(x: string, y: string): number;
44014401
resolvedOptions(): ResolvedCollatorOptions;
44024402
}
4403-
var Collator: {
4403+
4404+
interface CollatorConstructor {
44044405
new (locales?: string | string[], options?: CollatorOptions): Collator;
44054406
(locales?: string | string[], options?: CollatorOptions): Collator;
44064407
supportedLocalesOf(locales: string | string[], options?: CollatorOptions): string[];
4407-
};
4408+
}
4409+
4410+
var Collator: CollatorConstructor;
44084411

44094412
interface NumberFormatOptions {
44104413
localeMatcher?: string | undefined;
@@ -4436,12 +4439,15 @@ declare namespace Intl {
44364439
format(value: number): string;
44374440
resolvedOptions(): ResolvedNumberFormatOptions;
44384441
}
4439-
var NumberFormat: {
4442+
4443+
interface NumberFormatConstructor {
44404444
new (locales?: string | string[], options?: NumberFormatOptions): NumberFormat;
44414445
(locales?: string | string[], options?: NumberFormatOptions): NumberFormat;
44424446
supportedLocalesOf(locales: string | string[], options?: NumberFormatOptions): string[];
44434447
readonly prototype: NumberFormat;
4444-
};
4448+
}
4449+
4450+
var NumberFormat: NumberFormatConstructor;
44454451

44464452
interface DateTimeFormatOptions {
44474453
localeMatcher?: "best fit" | "lookup" | undefined;
@@ -4480,12 +4486,15 @@ declare namespace Intl {
44804486
format(date?: Date | number): string;
44814487
resolvedOptions(): ResolvedDateTimeFormatOptions;
44824488
}
4483-
var DateTimeFormat: {
4489+
4490+
interface DateTimeFormatConstructor {
44844491
new (locales?: string | string[], options?: DateTimeFormatOptions): DateTimeFormat;
44854492
(locales?: string | string[], options?: DateTimeFormatOptions): DateTimeFormat;
44864493
supportedLocalesOf(locales: string | string[], options?: DateTimeFormatOptions): string[];
44874494
readonly prototype: DateTimeFormat;
4488-
};
4495+
}
4496+
4497+
var DateTimeFormat: DateTimeFormatConstructor;
44894498
}
44904499

44914500
interface String {

tests/baselines/reference/DateTimeFormatAndNumberFormatES2021.symbols

+4-4
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,19 @@
22

33
=== DateTimeFormatAndNumberFormatES2021.ts ===
44
Intl.NumberFormat.prototype.formatRange
5-
>Intl.NumberFormat.prototype : Symbol(prototype, Decl(lib.es5.d.ts, --, --))
5+
>Intl.NumberFormat.prototype : Symbol(Intl.NumberFormatConstructor.prototype, Decl(lib.es5.d.ts, --, --))
66
>Intl.NumberFormat : Symbol(Intl.NumberFormat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2018.intl.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --))
77
>Intl : Symbol(Intl, Decl(lib.es5.d.ts, --, --), Decl(lib.es2016.intl.d.ts, --, --), Decl(lib.es2017.intl.d.ts, --, --), Decl(lib.es2018.intl.d.ts, --, --), Decl(lib.es2019.intl.d.ts, --, --) ... and 3 more)
88
>NumberFormat : Symbol(Intl.NumberFormat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2018.intl.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --))
9-
>prototype : Symbol(prototype, Decl(lib.es5.d.ts, --, --))
9+
>prototype : Symbol(Intl.NumberFormatConstructor.prototype, Decl(lib.es5.d.ts, --, --))
1010

1111
Intl.DateTimeFormat.prototype.formatRange
1212
>Intl.DateTimeFormat.prototype.formatRange : Symbol(Intl.DateTimeFormat.formatRange, Decl(lib.es2021.intl.d.ts, --, --))
13-
>Intl.DateTimeFormat.prototype : Symbol(prototype, Decl(lib.es5.d.ts, --, --))
13+
>Intl.DateTimeFormat.prototype : Symbol(Intl.DateTimeFormatConstructor.prototype, Decl(lib.es5.d.ts, --, --))
1414
>Intl.DateTimeFormat : Symbol(Intl.DateTimeFormat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2017.intl.d.ts, --, --), Decl(lib.es2021.intl.d.ts, --, --))
1515
>Intl : Symbol(Intl, Decl(lib.es5.d.ts, --, --), Decl(lib.es2016.intl.d.ts, --, --), Decl(lib.es2017.intl.d.ts, --, --), Decl(lib.es2018.intl.d.ts, --, --), Decl(lib.es2019.intl.d.ts, --, --) ... and 3 more)
1616
>DateTimeFormat : Symbol(Intl.DateTimeFormat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2017.intl.d.ts, --, --), Decl(lib.es2021.intl.d.ts, --, --))
17-
>prototype : Symbol(prototype, Decl(lib.es5.d.ts, --, --))
17+
>prototype : Symbol(Intl.DateTimeFormatConstructor.prototype, Decl(lib.es5.d.ts, --, --))
1818
>formatRange : Symbol(Intl.DateTimeFormat.formatRange, Decl(lib.es2021.intl.d.ts, --, --))
1919

2020
new Intl.NumberFormat().formatRange

tests/baselines/reference/DateTimeFormatAndNumberFormatES2021.types

+12-12
Original file line numberDiff line numberDiff line change
@@ -4,50 +4,50 @@
44
Intl.NumberFormat.prototype.formatRange
55
>Intl.NumberFormat.prototype.formatRange : any
66
>Intl.NumberFormat.prototype : Intl.NumberFormat
7-
>Intl.NumberFormat : { (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; new (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; supportedLocalesOf(locales: string | string[], options?: Intl.NumberFormatOptions): string[]; readonly prototype: Intl.NumberFormat; }
7+
>Intl.NumberFormat : Intl.NumberFormatConstructor
88
>Intl : typeof Intl
9-
>NumberFormat : { (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; new (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; supportedLocalesOf(locales: string | string[], options?: Intl.NumberFormatOptions): string[]; readonly prototype: Intl.NumberFormat; }
9+
>NumberFormat : Intl.NumberFormatConstructor
1010
>prototype : Intl.NumberFormat
1111
>formatRange : any
1212

1313
Intl.DateTimeFormat.prototype.formatRange
1414
>Intl.DateTimeFormat.prototype.formatRange : (startDate: number | bigint | Date, endDate: number | bigint | Date) => string
1515
>Intl.DateTimeFormat.prototype : Intl.DateTimeFormat
16-
>Intl.DateTimeFormat : { (locales?: string | string[], options?: Intl.DateTimeFormatOptions): Intl.DateTimeFormat; new (locales?: string | string[], options?: Intl.DateTimeFormatOptions): Intl.DateTimeFormat; supportedLocalesOf(locales: string | string[], options?: Intl.DateTimeFormatOptions): string[]; readonly prototype: Intl.DateTimeFormat; }
16+
>Intl.DateTimeFormat : Intl.DateTimeFormatConstructor
1717
>Intl : typeof Intl
18-
>DateTimeFormat : { (locales?: string | string[], options?: Intl.DateTimeFormatOptions): Intl.DateTimeFormat; new (locales?: string | string[], options?: Intl.DateTimeFormatOptions): Intl.DateTimeFormat; supportedLocalesOf(locales: string | string[], options?: Intl.DateTimeFormatOptions): string[]; readonly prototype: Intl.DateTimeFormat; }
18+
>DateTimeFormat : Intl.DateTimeFormatConstructor
1919
>prototype : Intl.DateTimeFormat
2020
>formatRange : (startDate: number | bigint | Date, endDate: number | bigint | Date) => string
2121

2222
new Intl.NumberFormat().formatRange
2323
>new Intl.NumberFormat().formatRange : any
2424
>new Intl.NumberFormat() : Intl.NumberFormat
25-
>Intl.NumberFormat : { (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; new (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; supportedLocalesOf(locales: string | string[], options?: Intl.NumberFormatOptions): string[]; readonly prototype: Intl.NumberFormat; }
25+
>Intl.NumberFormat : Intl.NumberFormatConstructor
2626
>Intl : typeof Intl
27-
>NumberFormat : { (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; new (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; supportedLocalesOf(locales: string | string[], options?: Intl.NumberFormatOptions): string[]; readonly prototype: Intl.NumberFormat; }
27+
>NumberFormat : Intl.NumberFormatConstructor
2828
>formatRange : any
2929

3030
new Intl.NumberFormat().formatRangeToParts
3131
>new Intl.NumberFormat().formatRangeToParts : any
3232
>new Intl.NumberFormat() : Intl.NumberFormat
33-
>Intl.NumberFormat : { (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; new (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; supportedLocalesOf(locales: string | string[], options?: Intl.NumberFormatOptions): string[]; readonly prototype: Intl.NumberFormat; }
33+
>Intl.NumberFormat : Intl.NumberFormatConstructor
3434
>Intl : typeof Intl
35-
>NumberFormat : { (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; new (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; supportedLocalesOf(locales: string | string[], options?: Intl.NumberFormatOptions): string[]; readonly prototype: Intl.NumberFormat; }
35+
>NumberFormat : Intl.NumberFormatConstructor
3636
>formatRangeToParts : any
3737

3838
new Intl.DateTimeFormat().formatRange
3939
>new Intl.DateTimeFormat().formatRange : (startDate: number | bigint | Date, endDate: number | bigint | Date) => string
4040
>new Intl.DateTimeFormat() : Intl.DateTimeFormat
41-
>Intl.DateTimeFormat : { (locales?: string | string[], options?: Intl.DateTimeFormatOptions): Intl.DateTimeFormat; new (locales?: string | string[], options?: Intl.DateTimeFormatOptions): Intl.DateTimeFormat; supportedLocalesOf(locales: string | string[], options?: Intl.DateTimeFormatOptions): string[]; readonly prototype: Intl.DateTimeFormat; }
41+
>Intl.DateTimeFormat : Intl.DateTimeFormatConstructor
4242
>Intl : typeof Intl
43-
>DateTimeFormat : { (locales?: string | string[], options?: Intl.DateTimeFormatOptions): Intl.DateTimeFormat; new (locales?: string | string[], options?: Intl.DateTimeFormatOptions): Intl.DateTimeFormat; supportedLocalesOf(locales: string | string[], options?: Intl.DateTimeFormatOptions): string[]; readonly prototype: Intl.DateTimeFormat; }
43+
>DateTimeFormat : Intl.DateTimeFormatConstructor
4444
>formatRange : (startDate: number | bigint | Date, endDate: number | bigint | Date) => string
4545

4646
new Intl.DateTimeFormat().formatRangeToParts
4747
>new Intl.DateTimeFormat().formatRangeToParts : (startDate: number | bigint | Date, endDate: number | bigint | Date) => Intl.DateTimeRangeFormatPart[]
4848
>new Intl.DateTimeFormat() : Intl.DateTimeFormat
49-
>Intl.DateTimeFormat : { (locales?: string | string[], options?: Intl.DateTimeFormatOptions): Intl.DateTimeFormat; new (locales?: string | string[], options?: Intl.DateTimeFormatOptions): Intl.DateTimeFormat; supportedLocalesOf(locales: string | string[], options?: Intl.DateTimeFormatOptions): string[]; readonly prototype: Intl.DateTimeFormat; }
49+
>Intl.DateTimeFormat : Intl.DateTimeFormatConstructor
5050
>Intl : typeof Intl
51-
>DateTimeFormat : { (locales?: string | string[], options?: Intl.DateTimeFormatOptions): Intl.DateTimeFormat; new (locales?: string | string[], options?: Intl.DateTimeFormatOptions): Intl.DateTimeFormat; supportedLocalesOf(locales: string | string[], options?: Intl.DateTimeFormatOptions): string[]; readonly prototype: Intl.DateTimeFormat; }
51+
>DateTimeFormat : Intl.DateTimeFormatConstructor
5252
>formatRangeToParts : (startDate: number | bigint | Date, endDate: number | bigint | Date) => Intl.DateTimeRangeFormatPart[]
5353

0 commit comments

Comments
 (0)