В
prop1name: loginProps,
prop2name: regProps,
}
Size: a a a
В
M
ВБ
В
ВБ
ВБ
ВБ
Д
В
В
ВБ
AD
Exp1 extends Exp2 ? Exp3 : Exp4
(где каждое Exp
— некоторое выражение от типов) вычисляется дистрибутивно, только если Exp1
является типом-параметром generic-типа (ни во что не обёрнутым — как сказано в документации, a naked type parameter).type G<T> = T extends unknown ? { x: T } : 1
.extends
стоит чистый тип-параметр T
, поэтому условие будет вычисляться дистрибутивно.type G<T> = [T] extends unknown ? { x: T } : 1
.extend
стоит [T]
— литерал кортежа от типа-параметра T
, а не сам тип-параметр, — так что дистрибутивность не включится.T extends Exp2 ? Exp3 : Exp4
недистрибутивно, достаточно обернуть выражения слева и справа от extends
в квадратные скобки ([T] extends [Exp2] ? Exp3 : Exp4
).MK
u
(A | B) extends U ? X : Y = (A extends U ? X : Y) | (B extends U ? X : Y)
.extends
, и результаты проверки объединяются. extends
проверяется всё объединение, а не его отдельные слагаемые.ᅠ
M
ᅠ
ᅠ
M