Кажется невозможным иметь обобщенный класс c, который ограничен типом объединения. В основном это:
class Shoe {
constructor(public size: number){}
}
class Dress {
constructor(public style: string){}
}
class Box <T extends Shoe | Dress > {
}
Тогда это:
// because move can move multiple boxes of Box of shoes or Box of dress
class Move<B extends Box<Shoe>[] | Box<Dress>[]> {
private stuff: B;
constructor(public toMove: Box<Shoe>[] | Box<Dress>[]) {
this.stuff = toMove // this does not compile
}
}
Или как этого достичь? У меня есть ссылка на игровую площадку , демонстрирующая ситуацию