类型'typeof ExampleService'中缺少属性'save',但类型'ExampleAbstractClassService'中

问题描述

我有一个名为“ ExampleService”的服务,并且我试图为该接口创建名为“ ExampleAbstractClassService”的接口。我遵循了blog

所以我的代码如下:

ExampleService:

import { Injectable } from '@angular/core';
import { ExampleAbstractClassService } from 'example';

@Injectable({ providedIn: 'root' })
 export class ExampleService implements ExampleAbstractClassService {
  save() {
   throw new Error("Method not implemented.");
  }
}

ExampleAbstractClassService:

import { Injectable } from '@angular/core';

@Injectable()
export abstract class ExampleAbstractClassService {
  abstract save();
}

现在我将config.module中的服务实例定义为: example.config.ts,我想传递现有的服务实例,而不是传递“新服务”。

import { Injectable } from '@angular/core';
import { ExampleAbstractClassService } from './example-abstract-class.service';

@Injectable({
  providedIn: 'root',})
export class ExampleConfig {
  serviceInstance?: ExampleAbstractClassService;
}

并在app.module中将其用作:

ExampleModule.forRoot({
  serviceInstance: ExampleService
})

但是在编译时,出现以下错误

ERROR in app.module.ts:28:24 - error TS2741: Property 'save' is missing in type 'typeof ExampleService' but required in type 'ExampleAbstractClassService'.

28       serviceInstance: ExampleService
                          ~~~~~~~~~~~~~~

  node_modules/some-project/example/example-abstract-class.service.d.ts:3:14
    3     abstract save(): any;
                   ~~~~
    'save' is declared here.
  app.module.ts:28:24
    28       serviceInstance: ExampleService
                              ~~~~~~~~~~~~~~
    Did you mean to use 'new' with this expression?
    

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)