Angular 没有实现的Typescript抽象类没有错误
有没有可能有一个抽象类具有强类型的公共方法,但没有实现它们我知道它是一个接口,但我不能在Angular中使用依赖注入接口作为标记。我需要为我的其他类实现一个结构。 但是,如果我这样做:Angular 没有实现的Typescript抽象类没有错误,angular,class,typescript,abstract,Angular,Class,Typescript,Abstract,有没有可能有一个抽象类具有强类型的公共方法,但没有实现它们我知道它是一个接口,但我不能在Angular中使用依赖注入接口作为标记。我需要为我的其他类实现一个结构。 但是,如果我这样做: 抽象类抽象服务{ someMethod():可观察的{} } Typescript将对其进行静态检查并出错,因为它不返回声明的类型 我想我可以在编译器代码中添加一些注释,以防止TS检查,但它似乎有黑客行为 有没有办法防止打印此检查并执行写入操作?我的体系结构的一个重要部分是DI的服务层系统您需要将未实现为抽象的
抽象类抽象服务{
someMethod():可观察的{}
}
Typescript将对其进行静态检查并出错,因为它不返回声明的类型
我想我可以在编译器代码中添加一些注释,以防止TS检查,但它似乎有黑客行为
有没有办法防止打印此检查并执行写入操作?我的体系结构的一个重要部分是DI的服务层系统您需要将未实现为
抽象的字段和方法标记为
abstract class AbstractService {
abstract someMethod(): Observable<SomeType>
}
您可以阅读有关抽象类的更多信息您需要将未实现为抽象的字段和方法标记为
abstract class AbstractService {
abstract someMethod(): Observable<SomeType>
}
您可以阅读更多关于抽象类的内容在这里
abstract class Base {
public abstract hello(name: string): Promise<string>
public abstract goodbye(name: string): Promise<string>
}
抽象类基类{
公共摘要hello(名称:string):Promise
公开摘要再见(名称:string):承诺
}
如果您需要测试新类,但尚未实现所有方法
class Human extends Base {
public hello(name: string) {
// your implementation
}
public goodbye(name: string) {
return 'Not implemented yet' as unknown as Promise<string>;
}
}
class人类扩展基础{
公共hello(名称:string){
//您的实现
}
公共再见(名称:string){
返回“尚未实施”作为未知的承诺;
}
}
给你
abstract class Base {
public abstract hello(name: string): Promise<string>
public abstract goodbye(name: string): Promise<string>
}
抽象类基类{
公共摘要hello(名称:string):Promise
公开摘要再见(名称:string):承诺
}
如果您需要测试新类,但尚未实现所有方法
class Human extends Base {
public hello(name: string) {
// your implementation
}
public goodbye(name: string) {
return 'Not implemented yet' as unknown as Promise<string>;
}
}
class人类扩展基础{
公共hello(名称:string){
//您的实现
}
公共再见(名称:string){
返回“尚未实施”作为未知的承诺;
}
}
正是我想要的,谢谢:)我使用实现
,但是@ukaszOstrowski并不重要,实现
或扩展
将强制您实现类的所有方法,它们的语义略有不同。如果使用实现,派生类将不会真正继承抽象类,因此构造函数中的任何代码或任何方法在派生类中都不可用。另外,instanceof AbstractService
对于此类classesTrue的实例将返回false。我使用抽象类只是因为Angular无法解析接口。这正是我想要的,谢谢:)并且我使用实现
,但这并不重要@ukaszOstrowski,而实现
或扩展
将强制您实现类的所有方法,它们的语义略有不同。如果使用实现,派生类将不会真正继承抽象类,因此构造函数中的任何代码或任何方法在派生类中都不可用。另外,instanceof AbstractService
对于此类classesTrue的实例将返回false。我使用抽象类只是因为Angular无法解析接口。