我有一个共享库,它有一个forRoot:
shared.module.ts
export class SharedModule {
public static forRoot(config: {svc: SharedAbstractService}): ModuleWithProviders<SharedModule > {
return {
ngModule: SharedModule,
providers: [
{
provide: 'configurationService',
useExisting: config.svc
}
]
};
}
}
它有一个共享抽象服务:
export abstract class SharedAbstractService {
abstract name: string;
}
现在,当我在客户端应用程序中扩展此服务时,类似于:
@Injectable()
export MyClientService extends SharedAbstractService{
name = 'Samuel';
//..... some code
}
然后从客户端app模块注入,例如:
imports: [
//...
SharedModule.forRoot({ svc : MyClientService })
//.. other imports
]
我得到
错误TS2739:类型“typeof MyClientService”缺少类型“SharedAbstractService”的以下属性:名称
在shared.module.ts中做类型检查,才能将MyClientService
作为参数传递?
1条答案
按热度按时间nzk0hqpo1#
如下所示尝试
Type<SharedAbstractService>