Class inheritance support
Add a provider to each derived component, aliasing the base component to the derived component:
@Component({
selector: 'child-comp2',
template: '<div>child component #2</div>',
providers: [{provide: BaseComponent, useExisting: forwardRef(() => ChildComponent2) }]
})
export class ChildComponent2 extends BaseComponent {
}
@Component({
selector: 'child-comp1',
template: '<div>child component #1</div>',
providers: [{provide: BaseComponent, useExisting: forwardRef(() => ChildComponent1) }]
})
export class ChildComponent1 extends BaseComponent {
}
Plunker: http://plnkr.co/edit/5gb5E4curAE2EfH2lNZQ?p=preview