Łuk*_*ski 1 class abstract typescript angular
是否可以有一个具有强类型公共方法但没有实现它们的抽象类?我知道它是一个接口,但我不能将接口用于依赖注入作为 Angular 中的令牌。我需要一个结构供其他类实现。但是,如果我这样做:
abstract class AbstractService {
someMethod(): Observable<SomeType> {}
}
Typescript 会静态地检查它并出错,因为它不返回声明的类型。
我想我可以在编译器代码中添加一些注释来防止 TS 检查,但这似乎很hacky。
有没有办法阻止 typescript 进行此检查并进行写入?我的架构的重要组成部分是用于 DI 的服务层系统
您需要将未实现的字段和方法标记为abstract
abstract class AbstractService {
abstract someMethod(): Observable<SomeType>
}
Run Code Online (Sandbox Code Playgroud)
这也将强制实现类实际实现这些方法:
// Error: Non-abstract class 'Service' does not implement inherited abstract member 'someMethod' from class 'AbstractService'
class Service extends AbstractService{
}
//ok, methods is implemented
class OkService extends AbstractService {
someMethod() {
throw new Error("Method not implemented.");
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12253 次 |
| 最近记录: |