extends
右項の中で) extends
の左項でも infer
が使えるtstype FirstIfString<T> =
T extends [infer S extends string, ...unknown[]]
? S
: never;
tstype FirstIfString<T> =
T extends [infer S, ...unknown[]]
? S extends string ? S : never
: never;
tstype FirstIfString<T> =
T extends [string, ...unknown[]] ? T[0] : never;