При наследование не корректно будет работать оператор
instanceof
@Contextable("module") class A { } @Contextable("module") class B extends A {} const b = new B() b instanceof B // true // тут работать не будет b instanceof A // false
Описываем класс, который при создании подключится к контексту ангуляра. Это позволит использовать ангуляровский DI в рамках объекта класса.
// foo.class.ts
@Contextable("myModule")
export default class Foo {
@Inject() $window;
public foo;
public get override() {
return "Foo";
}
constructor(public options) {
this.foo = { foo: 'foo' };
}
}
От него можно наследоваться. И вообще нет никаких ограничений по использованию.
// bar.class.ts
import Foo from './foo.class';
@Contextable("myModule")
export default class Bar extends Foo {
@Inject("$document") $doc;
public bar;
public get override() {
return "Bar";
}
constructor(public options) {
super(options);
this.bar = { ...this.foo, bar: 'bar' };
}
}
Используем как-то так:
// usage.ts
import Bar from "./bar.class";
export class MyController {
constructor() {
const bar = new Bar({ msg: "Hello, world!" });
// bar.$window;
// bar.$document;
}
}
export default angular
.module("myModule", ["ng"])
.controller("MyController", MyController);