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.

謝辞