What do these conditional types produce when you pass them a union?
Name the type each ^? line points at, and say whether TypeScript reports any errors.
type ToArray<T> = T extends unknown ? T[] : never;type ToArrayWhole<T> = [T] extends [unknown] ? T[] : never; type A = ToArray<string | number>;// ^?type B = ToArrayWhole<string | number>;// ^?type C = ToArray<boolean>;// ^? type IsString<T> = T extends string ? true : false;type D = IsString<"a" | 1>;// ^?type E = IsString<never>;// ^?type IsNever<T> = [T] extends [never] ? true : false;type F = IsNever<never>;// ^?Work it out first: the compiler shows every error and type.
The answer
Work out every error TypeScript reports and every type it shows, line by line. Then check.
Checking your sign-in…