Skip to content

Commit 0ed0561

Browse files
blfpdZzzen
authored andcommitted
fix(42128): Stricter type for ES5 Intl, redefine ES2020 intl (microsoft#42134)
1 parent b261e29 commit 0ed0561

File tree

2 files changed

+247
-27
lines changed

2 files changed

+247
-27
lines changed

src/lib/es2020.intl.d.ts

+236-16
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,239 @@ declare namespace Intl {
5454
*/
5555
type RelativeTimeFormatStyle = "long" | "short" | "narrow";
5656

57+
/**
58+
* Unicode Calendar Identifier
59+
*
60+
* [Reference](http://unicode.org/reports/tr35/#UnicodeCalendarIdentifier)
61+
*
62+
* [Source](https://github.com/unicode-org/cldr/blob/b805d0b/common/bcp47/calendar.xml)
63+
*/
64+
type Calendar =
65+
// Thai Buddhist calendar
66+
| "buddhist"
67+
// Traditional Chinese calendar
68+
| "chinese"
69+
// Coptic calendar
70+
| "coptic"
71+
// Traditional Korean calendar
72+
| "dangi"
73+
// Ethiopic calendar, Amete Alem (epoch approx. 5493 B.C.E)
74+
| "ethiopic-amete-alem" | "ethioaa"
75+
// Ethiopic calendar, Amete Mihret (epoch approx, 8 C.E.)
76+
| "ethiopic"
77+
// Gregorian calendar
78+
| "gregorian"
79+
// Gregorian calendar (alias)
80+
| "gregory"
81+
// Traditional Hebrew calendar
82+
| "hebrew"
83+
// Indian calendar
84+
| "indian"
85+
// Islamic calendar
86+
| "islamic"
87+
// Islamic calendar, Umm al-Qura
88+
| "islamic-umalqura"
89+
// Islamic calendar, tabular (intercalary years [2,5,7,10,13,16,18,21,24,26,29] - astronomical epoch)
90+
| "islamic-tbla"
91+
// Islamic calendar, tabular (intercalary years [2,5,7,10,13,16,18,21,24,26,29] - civil epoch)
92+
| "islamic-civil"
93+
| "islamicc" // Deprecated alias
94+
// Islamic calendar, Saudi Arabia sighting
95+
| "islamic-rgsa"
96+
// ISO calendar (Gregorian calendar using the ISO 8601 calendar week rules)
97+
| "iso8601"
98+
// Japanese Imperial calendar
99+
| "japanese"
100+
// Persian calendar
101+
| "persian"
102+
// Republic of China calendar
103+
| "roc"
104+
;
105+
106+
/**
107+
* Unicode Number System Identifier
108+
*
109+
* [Reference](http://unicode.org/reports/tr35/#UnicodeNumberSystemIdentifier)
110+
*
111+
* [Source](https://github.com/unicode-org/cldr/blob/be7a953/common/bcp47/number.xml)
112+
*/
113+
type NumberingSystem =
114+
// Adlam digits
115+
| "adlm"
116+
// Ahom digits
117+
| "ahom"
118+
// Arabic-Indic digits
119+
| "arab"
120+
// Extended Arabic-Indic digits
121+
| "arabext"
122+
// Armenian upper case numerals — algorithmic
123+
| "armn"
124+
// Armenian lower case numerals — algorithmic
125+
| "armnlow"
126+
// Balinese digits
127+
| "bali"
128+
// Bengali digits
129+
| "beng"
130+
// Bhaiksuki digits
131+
| "bhks"
132+
// Brahmi digits
133+
| "brah"
134+
// Chakma digits
135+
| "cakm"
136+
// Cham digits
137+
| "cham"
138+
// Cyrillic numerals — algorithmic
139+
| "cyrl"
140+
// Devanagari digits
141+
| "deva"
142+
// Dives Akuru digits
143+
| "diak"
144+
// Ethiopic numerals — algorithmic
145+
| "ethi"
146+
// Financial numerals — may be algorithmic
147+
| "finance"
148+
// Full width digits
149+
| "fullwide"
150+
// Georgian numerals — algorithmic
151+
| "geor"
152+
// Gunjala Gondi digits
153+
| "gong"
154+
// Masaram Gondi digits
155+
| "gonm"
156+
// Greek upper case numerals — algorithmic
157+
| "grek"
158+
// Greek lower case numerals — algorithmic
159+
| "greklow"
160+
// Gujarati digits
161+
| "gujr"
162+
// Gurmukhi digits
163+
| "guru"
164+
// Han-character day-of-month numbering for lunar/other traditional calendars"
165+
| "hanidays"
166+
// Positional decimal system using Chinese number ideographs as digits
167+
| "hanidec"
168+
// Simplified Chinese numerals — algorithmic
169+
| "hans"
170+
// Simplified Chinese financial numerals — algorithmic
171+
| "hansfin"
172+
// Traditional Chinese numerals — algorithmic
173+
| "hant"
174+
// Traditional Chinese financial numerals — algorithmic
175+
| "hantfin"
176+
// Hebrew numerals — algorithmic
177+
| "hebr"
178+
// Pahawh Hmong digits
179+
| "hmng"
180+
// Nyiakeng Puachue Hmong digits
181+
| "hmnp"
182+
// Javanese digits
183+
| "java"
184+
// Japanese numerals — algorithmic
185+
| "jpan"
186+
// Japanese financial numerals — algorithmic
187+
| "jpanfin"
188+
// Japanese first-year Gannen numbering for Japanese calendar
189+
| "jpanyear"
190+
// Kayah Li digits
191+
| "kali"
192+
// Khmer digits
193+
| "khmr"
194+
// Kannada digits
195+
| "knda"
196+
// Tai Tham Hora (secular) digits
197+
| "lana"
198+
// Tai Tham Tham (ecclesiastical) digits
199+
| "lanatham"
200+
// Lao digits
201+
| "laoo"
202+
// Latin digits
203+
| "latn"
204+
// Lepcha digits
205+
| "lepc"
206+
// Limbu digits
207+
| "limb"
208+
// Mathematical bold digits
209+
| "mathbold"
210+
// Mathematical double-struck digits
211+
| "mathdbl"
212+
// Mathematical monospace digits
213+
| "mathmono"
214+
// Mathematical sans-serif bold digits
215+
| "mathsanb"
216+
// Mathematical sans-serif digits
217+
| "mathsans"
218+
// Malayalam digits
219+
| "mlym"
220+
// Modi digits
221+
| "modi"
222+
// Mongolian digits
223+
| "mong"
224+
// Mro digits
225+
| "mroo"
226+
// Meetei Mayek digits
227+
| "mtei"
228+
// Myanmar digits
229+
| "mymr"
230+
// Myanmar Shan digits
231+
| "mymrshan"
232+
// Myanmar Tai Laing digits
233+
| "mymrtlng"
234+
// Native digits
235+
| "native"
236+
// Newa digits
237+
| "newa"
238+
// N'Ko digits
239+
| "nkoo"
240+
// Ol Chiki digits
241+
| "olck"
242+
// Oriya digits
243+
| "orya"
244+
// Osmanya digits
245+
| "osma"
246+
// Hanifi Rohingya digits
247+
| "rohg"
248+
// Roman upper case numerals — algorithmic
249+
| "roman"
250+
// Roman lowercase numerals — algorithmic
251+
| "romanlow"
252+
// Saurashtra digits
253+
| "saur"
254+
// Sharada digits
255+
| "shrd"
256+
// Khudawadi digits
257+
| "sind"
258+
// Sinhala Lith digits
259+
| "sinh"
260+
// Sora_Sompeng digits
261+
| "sora"
262+
// Sundanese digits
263+
| "sund"
264+
// Takri digits
265+
| "takr"
266+
// New Tai Lue digits
267+
| "talu"
268+
// Tamil numerals — algorithmic
269+
| "taml"
270+
// Modern Tamil decimal digits
271+
| "tamldec"
272+
// Telugu digits
273+
| "telu"
274+
// Thai digits
275+
| "thai"
276+
// Tirhuta digits
277+
| "tirh"
278+
// Tibetan digits
279+
| "tibt"
280+
// Traditional numerals — may be algorithmic
281+
| "traditional" | "traditio"
282+
// Vai digits
283+
| "vaii"
284+
// Warang Citi digits
285+
| "wara"
286+
// Wancho digits
287+
| "wcho"
288+
;
289+
57290
/**
58291
* An object with some or all of properties of `options` parameter
59292
* of `Intl.RelativeTimeFormat` constructor.
@@ -281,23 +514,10 @@ declare namespace Intl {
281514
interface DateTimeFormatOptions {
282515
dateStyle?: "full" | "long" | "medium" | "short";
283516
timeStyle?: "full" | "long" | "medium" | "short";
284-
calendar?: "buddhist" | "chinese" | " coptic" | "ethiopia" | "ethiopic" | "gregory" | " hebrew" | "indian" | "islamic" | "iso8601" | " japanese" | "persian" | "roc";
285-
dayPeriod?: "narrow" | "short" | " long";
286-
numberingSystem?: "arab" | "arabext" | " bali" | "beng" | "deva" | "fullwide" | " gujr" | "guru" | "hanidec" | "khmr" | " knda" | "laoo" | "latn" | "limb" | "mlym" | " mong" | "mymr" | "orya" | "tamldec" | " telu" | "thai" | "tibt";
287-
localeMatcher?: "best fit" | "lookup";
288-
timeZone?: string;
289-
hour12?: boolean;
517+
calendar?: Calendar;
518+
dayPeriod?: "narrow" | "short" | "long";
519+
numberingSystem?: NumberingSystem;
290520
hourCycle?: "h11" | "h12" | "h23" | "h24";
291-
formatMatcher?: "best fit" | "basic";
292-
weekday?: "long" | "short" | "narrow";
293-
era?: "long" | "short" | "narrow";
294-
year?: "numeric" | "2-digit";
295-
month?: "numeric" | "2-digit" | "long" | "short" | "narrow";
296-
day?: "numeric" | "2-digit";
297-
hour?: "numeric" | "2-digit";
298-
minute?: "numeric" | "2-digit";
299-
second?: "numeric" | "2-digit";
300521
fractionalSecondDigits?: 0 | 1 | 2 | 3;
301-
timeZoneName?: "long" | "short";
302522
}
303523
}

src/lib/es5.d.ts

+11-11
Original file line numberDiff line numberDiff line change
@@ -4318,17 +4318,17 @@ declare namespace Intl {
43184318
};
43194319

43204320
interface DateTimeFormatOptions {
4321-
localeMatcher?: string;
4322-
weekday?: string;
4323-
era?: string;
4324-
year?: string;
4325-
month?: string;
4326-
day?: string;
4327-
hour?: string;
4328-
minute?: string;
4329-
second?: string;
4330-
timeZoneName?: string;
4331-
formatMatcher?: string;
4321+
localeMatcher?: "best fit" | "lookup";
4322+
weekday?:"long" | "short" | "narrow";
4323+
era?:"long" | "short" | "narrow";
4324+
year?: "numeric" | "2-digit";
4325+
month?: "numeric" | "2-digit" | "long" | "short" | "narrow";
4326+
day?: "numeric" | "2-digit";
4327+
hour?: "numeric" | "2-digit";
4328+
minute?: "numeric" | "2-digit";
4329+
second?: "numeric" | "2-digit";
4330+
timeZoneName?: "long" | "short";
4331+
formatMatcher?: "best fit" | "basic";
43324332
hour12?: boolean;
43334333
timeZone?: string;
43344334
}

0 commit comments

Comments
 (0)