【发布时间】:2017-02-07 19:11:28
【问题描述】:
我对 TypeScript 比较陌生。我需要实现两个共享公共功能和状态的路由守卫。
当我尝试使用构造函数扩展可注入类时,生成的类不会接收私有成员的实例。
人为的例子:
// guard-base.ts
@Injectable()
export abstract class GuardBase {
constructor(
private sharedState: SharedState,
) {}
sharedMethod(): boolean {. . .}
}
// authentication-required.guard.ts
@Injectable()
export class RouteGuard extends GuardBase implements CanActivate {
canActivate(): Promise<boolean> {
console.log(this);
// this.sharedState equals undefined at this point
}
}
我必须在RouteGuard 类中提供构造函数参数吗?我想做的是将所有导入和共享方法封装在基类上。那可能吗?如果没有,完成我想做的事情的最佳方法是什么?
【问题讨论】:
标签: angular typescript