【发布时间】:2019-08-23 14:15:55
【问题描述】:
我正在使用打字稿,并且正在为我的一个 Angular 类编写自定义装饰器。我想访问子类装饰器中的基类方法。或者使用子类原型访问基类方法。有没有办法做到这一点?问题在下面详细解释。
场景
我有一个类似的基类
export class Base {
public init() {
console.log('My base class function');
}
}
我有一个派生类扩展了这个基类
export class Child extends Base {
}
我要做什么
我正在尝试为派生类编写一个装饰器,例如
@TestDecorator(['init'])
export class Child extends Base {
}
将从基类调用 init 方法。
有什么问题
为了实现上述场景,我编写了如下代码
export function Tool<T extends Base>(methods: any[]) {
return function (target: Function) {
methods.forEach((item) => {
if (item === 'init') {
target.super.init() // Stuck here
}
})
}
}
我不明白如何使以下行工作
target.super.init() // Stuck here
请帮助我解决问题。我被困住了。谢谢
【问题讨论】:
标签: javascript angular typescript