Typescript类型体操 – IsNever

  • Typescript类型体操 – IsNever已关闭评论
  • 114 次浏览
  • A+
所属分类:.NET技术
摘要

实现一个以 T 作为泛型参数的 IsNever类型.
如果 T 是never, 返回 true, 否则返回 false.


题目

中文

实现一个以 T 作为泛型参数的 IsNever类型.
如果 Tnever, 返回 true, 否则返回 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 

English

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 

答案

type IsNever<T extends unknown> = [T] extends [never] ? true : false; 

在线演示