问题描述
我有一个名为“ 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 (将#修改为@)