TypeScriptでジェネリクスから型パラメータの型を取り出す

タグ:

ジェネリクス
プログラミング
静的型付け
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 によって推論された型を使うためのもので、上のコードのように型を取りだすことができる。 高度な型を表現したいときに使える。

参考

© 2022 sqrtox, All Rights Reserved.

acknowledgments
リポジトリ