Among the TypeScript Challenge problems, there is a problem called IsNever. Implement a type IsNever, which takes input type T. If the type of resolves to never, return true, otherwise false.
type A = IsNever<never> expected to be true
type B = IsNever<undefined> expected to be false
type C = IsNever<null> expected to be false
type D = IsNever<[]> expected to be false
type E = IsNever<number> expected to be false
my solution(wrong answer)
type IsNever<T> = T extends never ? true : false;
another solution
type IsNever<T> = [T] extends [never] ? true: false;
What's the difference between these two solutions? I wonder what's different when comparing types with tuples.