защо „пропускане“? изглежда ми много по-просто. takeUntil като концепция е по-трудна за разбиране и има клопката на използването на in last в канала. Говорейки от опит като програмист и мениджър на екип, просто направете:

export class MyComponent implements OnDestroy {
  private subscriptions = new Subscription();

  constructor(o: SomeObservable) {
    this.subscriptions.add(o.subscribe(/* do something */));
  }

  ngOnDestroy() {
    this.subscriptions.unsubscribe();
  }
)