generated at
infer T extends ..
Conditional Types使う時で、分岐多くない?って時に利用を検討すると上手くいくかもmrsekut
( extends 右項の中で) extends の左項でも infer が使える

v4.7で入った ref


ts
type FirstIfString<T> = T extends [infer S extends string, ...unknown[]] ? S : never;
以下と同じ意味
ts
type FirstIfString<T> = T extends [infer S, ...unknown[]] ? S extends string ? S : never : never;
ts
type FirstIfString<T> = T extends [string, ...unknown[]] ? T[0] : never;