From 352dd459c4d6b5883d2c3c017ee2cca23ae66008 Mon Sep 17 00:00:00 2001 From: Michael Peirce Date: Wed, 28 Oct 2020 15:19:38 -0700 Subject: [PATCH 1/3] Specify length of toArrary return value toArray will always return an array with seven numbers. This change is necessary to be able to do `new Date(...m.toArray())`. As just `number[]`, it complains with `Expected 0-7 arguments, but got 0 or more.`. --- moment.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/moment.d.ts b/moment.d.ts index 2c5b3cf46b..2d21a7a250 100644 --- a/moment.d.ts +++ b/moment.d.ts @@ -585,7 +585,7 @@ declare namespace moment { diff(b: MomentInput, unitOfTime?: unitOfTime.Diff, precise?: boolean): number; - toArray(): number[]; + toArray(): [number, number, number, number, number, number, number]; toDate(): Date; toISOString(keepOffset?: boolean): string; inspect(): string; From 765638c82d71d76946ea2abebc02a47c165724d5 Mon Sep 17 00:00:00 2001 From: Michael Peirce Date: Thu, 29 Oct 2020 09:25:40 -0700 Subject: [PATCH 2/3] Moved the new typing to TypeScript 3.1 + only. --- moment.d.ts | 2 +- ts3.1-typings/moment.d.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/moment.d.ts b/moment.d.ts index 2d21a7a250..2c5b3cf46b 100644 --- a/moment.d.ts +++ b/moment.d.ts @@ -585,7 +585,7 @@ declare namespace moment { diff(b: MomentInput, unitOfTime?: unitOfTime.Diff, precise?: boolean): number; - toArray(): [number, number, number, number, number, number, number]; + toArray(): number[]; toDate(): Date; toISOString(keepOffset?: boolean): string; inspect(): string; diff --git a/ts3.1-typings/moment.d.ts b/ts3.1-typings/moment.d.ts index f383263eee..51fe8c21e1 100644 --- a/ts3.1-typings/moment.d.ts +++ b/ts3.1-typings/moment.d.ts @@ -573,7 +573,7 @@ declare namespace moment { diff(b: MomentInput, unitOfTime?: unitOfTime.Diff, precise?: boolean): number; - toArray(): number[]; + toArray(): [number, number, number, number, number, number, number]; toDate(): Date; toISOString(keepOffset?: boolean): string; inspect(): string; From 31bee3fe2fce5b1d152156578c7359ee94a45497 Mon Sep 17 00:00:00 2001 From: Michael Peirce Date: Thu, 29 Oct 2020 12:39:03 -0700 Subject: [PATCH 3/3] Add test for toArray's new return type --- ts3.1-typing-tests/moment-tests.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ts3.1-typing-tests/moment-tests.ts b/ts3.1-typing-tests/moment-tests.ts index a7ddc5d08f..b7709900ce 100644 --- a/ts3.1-typing-tests/moment-tests.ts +++ b/ts3.1-typing-tests/moment-tests.ts @@ -161,6 +161,8 @@ var getMonth: number = moment().month(); var getQuater: number = moment().quarter(); var getYear: number = moment().year(); +var date: [number, number, number, number, number, number, number] = moment().toArray(); + moment().hours(0).minutes(0).seconds(0).milliseconds(0); var a3 = moment([2011, 0, 1, 8]);