无法解析UserService的所有参数:(?)

时间:2019-10-12 08:50:28

标签: angular typescript

该应用程序可以很好地编译,但是在控制台中出现了上述错误。现在让我发布一些代码。

user.service.ts

mport { Injectable } from '@angular/core';
import { User } from '../models/user.model';
import { IUserService } from '../interfaces/user.interface';
import { Observable } from 'rxjs';

@Injectable()
export class UserService implements IUserService {

  constructor(
    private strategy: any
  ) { }

  get currentUser$(): Observable<User> {
    return this.strategy.currentUser$;
  }

  public setStrategy(val: any): void {
    this.strategy = val;
  }

  public create(user: User): Observable<User> {
    return this.strategy.create(user);
  }

  public retrieveOne(id: number): Observable<User> {
    return this.strategy.retrieveOne(id);
  }

  // other CRUD methods
}

该代码位于应用程序的CoreModule模块中,该模块的外观如下:

core.module.ts

import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { AuthModule } from './auth/auth.module';
import { UserService } from './user/services/user.service';

@NgModule({
  declarations: [],
  imports: [
    CommonModule,
    AuthModule,
  ],
  exports: [
    AuthModule,
  ],
  providers: [UserService]
})
export class CoreModule { }

我想尝试一下已经编写的内容,并决定在应用程序组件中执行此操作,它的ts文件具有一些方法和构造函数,我在其中注入了UserService

  constructor(
    private userService: UserService
  ) {
    this.userService.setStrategy(new FirebaseUserStrategy());
  }

我的应用程序模块仅导入core.module.ts

1 个答案:

答案 0 :(得分:0)

您可以使用@Optional标记策略:

constructor(
    @Optional private strategy: any
  ) { }