bivariant
code:ts
type A = 'a'
type B = 'b'
type C = 'c'
let func: (arg: A | B) => unknown;
func = (arg: A | B | C) => {}; // ok. contravariant
func = (arg: A | B) => {}; // ok.
func = (arg: A) => {}; // ok. covariant
もちろん型安全ではないmrsekut.icon
一番下のものが型安全ではない