如何解决类型'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 举报,一经查实,本站将立刻删除。