Typescript decorators as mixins?
<p>I'm writing a big application in Angular2. I have a base class that does this:</p>

<pre><code>export abstract class ReactiveComponent implements OnInit, OnDestroy, AfterViewInit {
    abstract ngOnInit(): void;
    protected _subscriptions: Rx.Subscription[] = [];
    private __viewInit = new Rx.Subject&lt;void&gt;();
    protected _viewInit: Rx.Observable&lt;void&gt; = this.__viewInit;
    ngOnDestroy() {
        if (this._subscriptions)
            this._subscriptions.forEach(s =&gt; s.unsubscribe());
    }
    ngAfterViewInit() {
        this.__viewInit.complete();

    }
}
</code></pre>

<p>But some of my classes need to have other base classes, and I'm hitting the classic mixin/inheritance brick wall.</p>

<p>So I was thinking about turning this into a decorator, since Angular2 won't care where those methods came from, I can easily do a <code>constructor.prototype.ngOnDestroy = ...</code></p>

<p><strong>Right?</strong></p>

<p>Which leaves me with 2 questions:</p>

<ol>
<li>Do I have any way of letting the protected members "show up" in the decorated class so that I can write <code>this._subscriptions</code> in Typescript?</li>
<li>What if I want to add a <code>@ContentChildren(...) someStuff;</code> property via a mixin? How can I dynamically define a decorator on <code>constructor.prototype.someStuff</code>? Am I in the wrong ballpark for "traits" all together?</li>
</ol>