A ⊂ B → T<A> ⊂ T<B>
const stringArr = Array<string>;
const Arr = Array<string | number>;
Arr = stringArr; // 대체가능
stringArr = Arr; // Error!
const subObj: { a: string; b: number } = { a: 'string', b: 10 };
const superObj: { a: string | number; b: number } = subObj; //대체가능