TypeScript函数参数签名 - 允许箭头功能,禁止类方法

时间:2017-09-14 08:16:35

标签: typescript lambda function-signature

假设我有这个包装其他库的类:

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

0 个答案:

没有答案