`любые расширения » — это распределенные условные типы, а общий условный тип разрешается как никогда, если для общего типа установлено значение никогда

#javascript #typescript

Вопрос:

 type A = [any] extends [never] ? true : false // false
type B = any extends never ? true : false //boolean
 

Это заставляет меня задуматься, почему» любые расширения» возвращают тип объединения?

Это то, что объясняется в документации:

When conditional types act on a generic type, they become distributive when given a union type. Но я не применял тип объединения

Это тоже странно:

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

type C = IsNever<never> // never

type D = never extends never ? true : false // true

 

Зачем просто возвращаться never ?