假设我有一个包含其他库的类:
class A {
method(callback: () => void): void {
// ...
}
}
而这个使用它:
class B {
a: A;
constructor() {
this.a = new A();
}
do(): void {
this.a.method(this.doLater);
this.a.method(() => this.doLater());
}
doLater(): void {
// ...
}
}
里面的两个调用都B.do()
编译,但第一个在运行时失败,因为this
它尝试调用时丢失了上下文doLater()
。可以理解。我对此无能为力,但我希望能够编写A.method()
签名,以便您被迫在调用站点使用箭头函数,因为我无法修改库代码。那可能吗?
我正在使用 TypeScript 2.5.2 并--noImplicitThis
已启用