私はお互いを呼び出すサービスのレベルが少なく、を使用するComponentService
はErrorService
です。別のサービスのためのサービスの注入
ここで、コンポーネントサービスの1つは、で使用されているErrorService
インスタンスが、たとえば次のように指定する必要があります。 SpecialErrorService
タイプ。 - ErrorService
またはSpecialErrorService
は直接使用しません。
インスタンス化するときに正しいErrorService
型を挿入するようにデータサービスに指示するにはどうすればよいですか?サービスを提供する場合
@Injectable()
export class SpecialComponentService {
constructor(private _dataService: DataService){}
log() {
//expecting this to log: I'm a special error service
this._dataService.log();
}
}
@Injectable()
export class RegularComponentService {
constructor(private _dataService: DataService){}
log() {
//expecting this to log: I'm a regularerror service
this._dataService.log();
}
}
@Injectable()
export class DataService {
constructor(private _errorService: ErrorService){}
log() {
this._errorService.log();
}
}
@Injectable()
export class ErrorService {
log(){
console.log("I'm a regular error service");
}
}
@Injectable()
export class SpecialErrorService extends ErrorService {
log(){
console.log("I'm a special error service");
}
}
達成しようとしていることを示すコードを追加してください。 –
なぜ、単にConsoleErrorService型のコンストラクタパラメータを作るだけではないのですか? –
@GünterZöchbauer - 私は、通常の動作と特別な動作の両方に対して、まったく同じDataServiceを使用します。 – SWeko