Typescript 从不 vs [从不]

i47*_*898 5 typescript typescript-generics typescript-typings

为什么这不起作用:

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

type A = IsNever<never>; // ->'never', but should be true
Run Code Online (Sandbox Code Playgroud)

但这有效:

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

type A = IsNever<never>; // true
Run Code Online (Sandbox Code Playgroud)

在这种情况下,方括号 [] 如何帮助定义类型?

Kir*_*hka 2

永远不能从类型扩展。正确类型:

type IsNever<T> = [T] extends [never] ? true : false
Run Code Online (Sandbox Code Playgroud)