У меня есть абстрактный класс и его реализация
export abstract class IPrint {
abstract Print(textInput: string): void;
}
export class FilePrint implements IPrint {
Print(textInput: string): void {
console.log("File Print");
}
}
Затем введите Angular DI:
providers:
[
{ provide: IPrint, useClass: FilePrint }
],
Я могу использовать его следующим образом:
constructor(private _print: IPrint) { }
ngOnInit(): void {
console.log(this._print.Print("HI"))
}
Теперь я хочу иметь несколько реализаций IPrint
export class ScreenPrint implements IPrint {
Print(textInput: string): void {
console.log("Screen Print")
}
}
Затем введите Angular DI:
providers:
[
{ provide: IPrint, useClass: FilePrint },
{ provide: IPrint, useClass: ScreenPrint }
],
Когда я хочу использовать IPrint, angular не знает, какую реализацию необходимо использовать:
constructor(private _print: IPrint) { }