TypeScript タプル型からユニオン型を作る方法

TypeScriptの少し変わった書き方です。

タプル型から、要素のユニオン型を作成します。T1[number]のところがミソです。

type T1 = ['hoge', 'foo', 'bar']
type T2 = T1[number] // "hoge" | "foo" | "bar"