Skip to content

Commit 29d9623

Browse files
fabon-fptomato
authored andcommitted
Allow undefined explicitly for optional properties
1 parent fd7988d commit 29d9623

File tree

1 file changed

+97
-79
lines changed

1 file changed

+97
-79
lines changed

polyfill/index.d.ts

Lines changed: 97 additions & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ export namespace Temporal {
2626
*
2727
* The default is `'constrain'`.
2828
*/
29-
overflow?: 'constrain' | 'reject';
29+
overflow?: 'constrain' | 'reject' | undefined;
3030
};
3131

3232
/**
@@ -45,7 +45,7 @@ export namespace Temporal {
4545
*
4646
* The default is `'constrain'`.
4747
*/
48-
overflow?: 'constrain' | 'balance';
48+
overflow?: 'constrain' | 'balance' | undefined;
4949
};
5050

5151
/**
@@ -75,7 +75,7 @@ export namespace Temporal {
7575
* The default is `'compatible'`.
7676
*
7777
* */
78-
disambiguation?: 'compatible' | 'earlier' | 'later' | 'reject';
78+
disambiguation?: 'compatible' | 'earlier' | 'later' | 'reject' | undefined;
7979
};
8080

8181
type OffsetDisambiguationOptions = {
@@ -111,7 +111,7 @@ export namespace Temporal {
111111
* be used to choose the correct instant. However, if the offset is used
112112
* then the `disambiguation` option will be ignored.
113113
*/
114-
offset?: 'use' | 'prefer' | 'ignore' | 'reject';
114+
offset?: 'use' | 'prefer' | 'ignore' | 'reject' | undefined;
115115
};
116116

117117
export type ZonedDateTimeAssignmentOptions = Partial<
@@ -130,7 +130,7 @@ export namespace Temporal {
130130
*
131131
* The default is `'constrain'`.
132132
*/
133-
overflow?: 'constrain' | 'reject';
133+
overflow?: 'constrain' | 'reject' | undefined;
134134
};
135135

136136
export type DateUnit = 'year' | 'month' | 'week' | 'day';
@@ -163,8 +163,8 @@ export namespace Temporal {
163163
* Options for outputting precision in toString() on types with seconds
164164
*/
165165
export type ToStringPrecisionOptions = {
166-
fractionalSecondDigits?: 'auto' | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9;
167-
smallestUnit?: SmallestUnit<'minute' | 'second' | 'millisecond' | 'microsecond' | 'nanosecond'>;
166+
fractionalSecondDigits?: 'auto' | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | undefined;
167+
smallestUnit?: SmallestUnit<'minute' | 'second' | 'millisecond' | 'microsecond' | 'nanosecond'> | undefined;
168168

169169
/**
170170
* Controls how rounding is performed:
@@ -180,19 +180,19 @@ export namespace Temporal {
180180
* negative infinity which is usually unexpected. For this reason, `trunc`
181181
* is recommended for most use cases.
182182
*/
183-
roundingMode?: RoundingMode;
183+
roundingMode?: RoundingMode | undefined;
184184
};
185185

186186
export type ShowCalendarOption = {
187-
calendarName?: 'auto' | 'always' | 'never' | 'critical';
187+
calendarName?: 'auto' | 'always' | 'never' | 'critical' | undefined;
188188
};
189189

190190
export type CalendarTypeToStringOptions = Partial<ToStringPrecisionOptions & ShowCalendarOption>;
191191

192192
export type ZonedDateTimeToStringOptions = Partial<
193193
CalendarTypeToStringOptions & {
194-
timeZoneName?: 'auto' | 'never' | 'critical';
195-
offset?: 'auto' | 'never';
194+
timeZoneName?: 'auto' | 'never' | 'critical' | undefined;
195+
offset?: 'auto' | 'never' | undefined;
196196
}
197197
>;
198198

@@ -213,7 +213,7 @@ export namespace Temporal {
213213
* `since()`, because those methods default behavior is not to round.
214214
* However, the same property is required for `round()`.
215215
*/
216-
smallestUnit?: SmallestUnit<T>;
216+
smallestUnit?: SmallestUnit<T> | undefined;
217217

218218
/**
219219
* The largest unit to allow in the resulting `Temporal.Duration` object.
@@ -231,14 +231,14 @@ export namespace Temporal {
231231
* The default is always `'auto'`, though the meaning of this depends on the
232232
* type being used.
233233
*/
234-
largestUnit?: LargestUnit<T>;
234+
largestUnit?: LargestUnit<T> | undefined;
235235

236236
/**
237237
* Allows rounding to an integer number of units. For example, to round to
238238
* increments of a half hour, use `{ smallestUnit: 'minute',
239239
* roundingIncrement: 30 }`.
240240
*/
241-
roundingIncrement?: number;
241+
roundingIncrement?: number | undefined;
242242

243243
/**
244244
* Controls how rounding is performed:
@@ -256,7 +256,7 @@ export namespace Temporal {
256256
* negative infinity which is usually unexpected. For this reason, `trunc`
257257
* is recommended for most use cases.
258258
*/
259-
roundingMode?: RoundingMode;
259+
roundingMode?: RoundingMode | undefined;
260260
}
261261

262262
/**
@@ -282,7 +282,7 @@ export namespace Temporal {
282282
* increments of a half hour, use `{ smallestUnit: 'minute',
283283
* roundingIncrement: 30 }`.
284284
*/
285-
roundingIncrement?: number;
285+
roundingIncrement?: number | undefined;
286286

287287
/**
288288
* Controls how rounding is performed:
@@ -298,7 +298,7 @@ export namespace Temporal {
298298
* negative infinity which is usually unexpected. For this reason, `trunc`
299299
* is recommended for most use cases.
300300
*/
301-
roundingMode?: RoundingMode;
301+
roundingMode?: RoundingMode | undefined;
302302
};
303303

304304
/**
@@ -340,7 +340,7 @@ export namespace Temporal {
340340
* If `smallestUnit` is larger, then `smallestUnit` will be used as
341341
* `largestUnit`, superseding a caller-supplied or default value.
342342
*/
343-
largestUnit?: LargestUnit<DateTimeUnit>;
343+
largestUnit?: LargestUnit<DateTimeUnit> | undefined;
344344
}
345345
| {
346346
/**
@@ -349,7 +349,7 @@ export namespace Temporal {
349349
* required, but is optional if `largestUnit` is provided and not
350350
* undefined.
351351
*/
352-
smallestUnit?: SmallestUnit<DateTimeUnit>;
352+
smallestUnit?: SmallestUnit<DateTimeUnit> | undefined;
353353

354354
/**
355355
* The largest unit to allow in the resulting `Temporal.Duration`
@@ -378,7 +378,7 @@ export namespace Temporal {
378378
* to increments of a half hour, use `{ smallestUnit: 'minute',
379379
* roundingIncrement: 30 }`.
380380
*/
381-
roundingIncrement?: number;
381+
roundingIncrement?: number | undefined;
382382

383383
/**
384384
* Controls how rounding is performed:
@@ -397,7 +397,7 @@ export namespace Temporal {
397397
* unexpected. For this reason, `trunc` is recommended for most "round
398398
* down" use cases.
399399
*/
400-
roundingMode?: RoundingMode;
400+
roundingMode?: RoundingMode | undefined;
401401

402402
/**
403403
* The starting point to use for rounding and conversions when
@@ -423,7 +423,13 @@ export namespace Temporal {
423423
* time zone transitions and all days will be assumed to be 24 hours
424424
* long.
425425
*/
426-
relativeTo?: Temporal.PlainDateTime | Temporal.ZonedDateTime | PlainDateTimeLike | ZonedDateTimeLike | string;
426+
relativeTo?:
427+
| Temporal.PlainDateTime
428+
| Temporal.ZonedDateTime
429+
| PlainDateTimeLike
430+
| ZonedDateTimeLike
431+
| string
432+
| undefined;
427433
});
428434

429435
/**
@@ -459,7 +465,13 @@ export namespace Temporal {
459465
* this option is omitted), then the operation will ignore time zone
460466
* transitions and all days will be assumed to be 24 hours long.
461467
*/
462-
relativeTo?: Temporal.ZonedDateTime | Temporal.PlainDateTime | ZonedDateTimeLike | PlainDateTimeLike | string;
468+
relativeTo?:
469+
| Temporal.ZonedDateTime
470+
| Temporal.PlainDateTime
471+
| ZonedDateTimeLike
472+
| PlainDateTimeLike
473+
| string
474+
| undefined;
463475
};
464476

465477
/**
@@ -486,7 +498,13 @@ export namespace Temporal {
486498
* this option is omitted), then the operation will ignore time zone
487499
* transitions and all days will be assumed to be 24 hours long.
488500
*/
489-
relativeTo?: Temporal.ZonedDateTime | Temporal.PlainDateTime | ZonedDateTimeLike | PlainDateTimeLike | string;
501+
relativeTo?:
502+
| Temporal.ZonedDateTime
503+
| Temporal.PlainDateTime
504+
| ZonedDateTimeLike
505+
| PlainDateTimeLike
506+
| string
507+
| undefined;
490508
}
491509

492510
/**
@@ -495,16 +513,16 @@ export namespace Temporal {
495513
export type TransitionDirection = 'next' | 'previous' | { direction: 'next' | 'previous' };
496514

497515
export type DurationLike = {
498-
years?: number;
499-
months?: number;
500-
weeks?: number;
501-
days?: number;
502-
hours?: number;
503-
minutes?: number;
504-
seconds?: number;
505-
milliseconds?: number;
506-
microseconds?: number;
507-
nanoseconds?: number;
516+
years?: number | undefined;
517+
months?: number | undefined;
518+
weeks?: number | undefined;
519+
days?: number | undefined;
520+
hours?: number | undefined;
521+
minutes?: number | undefined;
522+
seconds?: number | undefined;
523+
milliseconds?: number | undefined;
524+
microseconds?: number | undefined;
525+
nanoseconds?: number | undefined;
508526
};
509527

510528
/**
@@ -615,11 +633,11 @@ export namespace Temporal {
615633
export type PlainDateLike = {
616634
era?: string | undefined;
617635
eraYear?: number | undefined;
618-
year?: number;
619-
month?: number;
620-
monthCode?: string;
621-
day?: number;
622-
calendar?: CalendarLike;
636+
year?: number | undefined;
637+
month?: number | undefined;
638+
monthCode?: string | undefined;
639+
day?: number | undefined;
640+
calendar?: CalendarLike | undefined;
623641
};
624642

625643
/**
@@ -673,7 +691,7 @@ export namespace Temporal {
673691
| string
674692
| {
675693
timeZone: TimeZoneLike;
676-
plainTime?: Temporal.PlainTime | PlainTimeLike | string;
694+
plainTime?: Temporal.PlainTime | PlainTimeLike | string | undefined;
677695
}
678696
): Temporal.ZonedDateTime;
679697
toPlainYearMonth(): Temporal.PlainYearMonth;
@@ -688,17 +706,17 @@ export namespace Temporal {
688706
export type PlainDateTimeLike = {
689707
era?: string | undefined;
690708
eraYear?: number | undefined;
691-
year?: number;
692-
month?: number;
693-
monthCode?: string;
694-
day?: number;
695-
hour?: number;
696-
minute?: number;
697-
second?: number;
698-
millisecond?: number;
699-
microsecond?: number;
700-
nanosecond?: number;
701-
calendar?: CalendarLike;
709+
year?: number | undefined;
710+
month?: number | undefined;
711+
monthCode?: string | undefined;
712+
day?: number | undefined;
713+
hour?: number | undefined;
714+
minute?: number | undefined;
715+
second?: number | undefined;
716+
millisecond?: number | undefined;
717+
microsecond?: number | undefined;
718+
nanosecond?: number | undefined;
719+
calendar?: CalendarLike | undefined;
702720
};
703721

704722
/**
@@ -791,11 +809,11 @@ export namespace Temporal {
791809
export type PlainMonthDayLike = {
792810
era?: string | undefined;
793811
eraYear?: number | undefined;
794-
year?: number;
795-
month?: number;
796-
monthCode?: string;
797-
day?: number;
798-
calendar?: CalendarLike;
812+
year?: number | undefined;
813+
month?: number | undefined;
814+
monthCode?: string | undefined;
815+
day?: number | undefined;
816+
calendar?: CalendarLike | undefined;
799817
};
800818

801819
/**
@@ -825,12 +843,12 @@ export namespace Temporal {
825843
}
826844

827845
export type PlainTimeLike = {
828-
hour?: number;
829-
minute?: number;
830-
second?: number;
831-
millisecond?: number;
832-
microsecond?: number;
833-
nanosecond?: number;
846+
hour?: number | undefined;
847+
minute?: number | undefined;
848+
second?: number | undefined;
849+
millisecond?: number | undefined;
850+
microsecond?: number | undefined;
851+
nanosecond?: number | undefined;
834852
};
835853

836854
/**
@@ -898,10 +916,10 @@ export namespace Temporal {
898916
export type PlainYearMonthLike = {
899917
era?: string | undefined;
900918
eraYear?: number | undefined;
901-
year?: number;
902-
month?: number;
903-
monthCode?: string;
904-
calendar?: CalendarLike;
919+
year?: number | undefined;
920+
month?: number | undefined;
921+
monthCode?: string | undefined;
922+
calendar?: CalendarLike | undefined;
905923
};
906924

907925
/**
@@ -957,19 +975,19 @@ export namespace Temporal {
957975
export type ZonedDateTimeLike = {
958976
era?: string | undefined;
959977
eraYear?: number | undefined;
960-
year?: number;
961-
month?: number;
962-
monthCode?: string;
963-
day?: number;
964-
hour?: number;
965-
minute?: number;
966-
second?: number;
967-
millisecond?: number;
968-
microsecond?: number;
969-
nanosecond?: number;
970-
offset?: string;
971-
timeZone?: TimeZoneLike;
972-
calendar?: CalendarLike;
978+
year?: number | undefined;
979+
month?: number | undefined;
980+
monthCode?: string | undefined;
981+
day?: number | undefined;
982+
hour?: number | undefined;
983+
minute?: number | undefined;
984+
second?: number | undefined;
985+
millisecond?: number | undefined;
986+
microsecond?: number | undefined;
987+
nanosecond?: number | undefined;
988+
offset?: string | undefined;
989+
timeZone?: TimeZoneLike | undefined;
990+
calendar?: CalendarLike | undefined;
973991
};
974992

975993
export class ZonedDateTime {

0 commit comments

Comments
 (0)