[Typescript] 40. Medium - IsNever

Implement a type IsNever, which takes input type T.
If the type of resolves to never, return true, otherwise false.

For example:

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

Was thinking about doing as such:

type IsNever<T> = T extends never ? true: false

But sadly it won't work well, it fails at this case: Expect<Equal<IsNever<never>, true>>,

Solution is always:

type IsNever<T> = [T] extends [never] ? true: false
posted @ 2022-09-28 21:47  Zhentiw  阅读(20)  评论(0编辑  收藏  举报