type-challenge 7日目(その2): 533-Concat

問題 & 解答

JavaScriptのArray.concatを型システムで構成する。

Variadic Tuple Typesを使って次のように定義する

type Concat<T extends any[], U extends any[]> = [...T, ...U]

調べたこと

Variadic Tuple Types

  • タプル型の中でに...Tと書ける機能
  • ...で展開される方はextends readonly any[]を満たす必要がある。
  • ちなみにVariadicは「可変長引数」

TypeScript: Documentation - TypeScript 4.0

感想

Variadic Tuple Typesという名前がわからないまま、「こんな感じにできそうかな」と思ったら通ってしまいました。 TypeScript難しい…


Buy Me A Coffeeikuma-tにお恵みを!