TypeScriptでジェネリクスから型パラメータの型を取り出す
はじめに
string[](Array<string> と同じ)から string を取り出したいことがあった。
しかし、静的型付け言語をあまりやっていない私にはどうやって取り出せばいいのか全くわからなかった。
同じような人のために備忘録として残しておく。
結論
infer を使用する。
type ExtractTypeFromArray<T> = T extends Array<infer U> ? U : never;inferとは?
type ExtractTypeFromArray<T> = T extends Array<infer U> ? U : never;
// someArray is string[]
const someArray = ['a', 'b', 'c'];
// SomeArrayElementType is string
type SomeArrayElementType = ExtractTypeFromArray<typeof someArray>;infer は TypeScript によって推論された型を使うためのもので、上のコードのように型を取りだすことができる。 高度な型を表現したいときに使える。