С учетом подписи этой функции: function foo<T extends X | Y>(bar: T, baz: T) {}
Абоненты не могут смешивать X
и Y
. Компилятор обеспечивает, чтобы bar
и baz
были либо оба X
, либо оба Y
Однако проверка типа на bar
сужает его тип, но не это из baz
. Доказательство: ts детская площадка
Может ли эта симметрия вне тела метода каким-либо образом быть продолжена в теле метода, так что проверка 1 типа сужает все параметры?