問題
Array.pushのジェネリックバージョンを実装します。
例えば:
```typescript
type Result = Push<[1, 2], '3'> // [1, 2, '3']
```
回答
type Push<T extends unknown[], U> = [...T, U]
ちょっと解説
T extends unknown[]
こうかくことで、T を配列/タプルに限定することができます。
よって後続で[...T, U]
スプレッドを使用することができます。
...T
Variadic Tuple Typesと呼ばれるものです。
JSのスプレッド構文の型バージョンであり、ある要素を別のタプル型に埋め込むことができます。