注入服务时无法解析组件的所有参数

Can't resolve all parameters for component when service is injected

我在向我的组件注入服务时遇到问题。该服务在全球范围内提供。 我在我的代码编辑器中收到此错误。

Can't resolve all parameters for SomeComponent in some.component.ts: (?). ng(0)

奇怪的是我的应用程序运行正常,编译器没有抛出任何错误。

服务

import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';

@Injectable({
  providedIn: 'root',
})
export default class AppService {
  constructor(private _http: HttpClient) {}

  someMethod() {}
}

组件

import { Component } from "@angular/core";
import AppService from "./app.service";

@Component({
  selector: "app-some-component"
})
export class SomeComponent {
  constructor(private _appService: AppService) {}
}

我在此处查看答案,但找不到任何提供答案的答案。 一些答案给出了改变构造函数注入顺序的解决方案。

经过多次尝试,我发现我弄错了export default class AppService

我发现不建议在 Angular 中使用默认导出,因为 AOT 不起作用。这是涵盖该问题的文章:

所以解决方案是始终正常导出 class:

服务

import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';

@Injectable({
  providedIn: 'root',
})
export class AppService {
  constructor(private _http: HttpClient) {}

  someMethod() {}
}

组件

import { Component } from "@angular/core";
import { AppService } from "./app.service";

@Component({
  selector: "app-some-component"
})
export class SomeComponent {
  constructor(private _appService: AppService) {}
}

希望这可以帮助其他人不要像我一样浪费时间。