首页 > 解决方案 > 无法解析 UserService 的所有参数:(?)

问题描述

该应用程序编译得非常好,但在控制台中我得到了上述错误。现在让我发布一些代码。

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.

标签: angulartypescript

解决方案


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

constructor(
    @Optional private strategy: any
  ) { }

推荐阅读