[TypeScript] new Date引数にスプレッド構文を指定する
new Date()の引数に年月日時分秒を指定することで指定した日付で初期化できます。
const d = new Date(2020, 9, 22, 10, 43, 21);
※月の指定はインデックスなので10月の場合は、(10-1)の9を指定します。
この引数をスプレッド構文で書こうとします。
const arr = [2020, 9, 22, 10, 43, 21]; const d = new Date(… arr);
この記述をするとTypescriptのエラーになります。
TS2556: Expected 0-7 arguments, but got 0 or more.
コンパイラがarrを正しく認識できないためのようです。
この場合、型を明示することでエラーは解消されます。
const arr:[number, number, number, number, number, number] = [2020, 9, 22, 10, 43, 21]; const d = new Date(… arr);
ここまでしてスプレッド構文を使用するメリットはないですが、仕組みとして他に応用できる場面があるかもしれません。
== ランキングに参加しています。ぜひクリックお願いします ==
[TypeScript] 配列を展開する?!「…」 Spread operator(スプレッド構文) [TypeScript] 日付の時分秒部分を切り捨てる