Jak mogę zachować zakres leksykalny w TypeScript za pomocą funkcji zwrotnej

Mam klasę TypeScript z funkcją, której zamierzam użyć jako wywołania zwrotnego:

removeRow(_this:MyClass): void {
    ...
    // 'this' is now the window object
    // I must use '_this' to get the class itself
    ...
}

Przekazuję go do innej funkcji

this.deleteRow(this.removeRow);

który z kolei wywołuje metodę jQuery Ajax, która, jeśli się powiedzie, wywołuje wywołanie zwrotne w ten sposób:

deleteItem(removeRowCallback: (_this:MyClass) => void ): void {
    $.ajax(action, {
        data: { "id": id },
        type: "POST"
    })
    .done(() => {
        removeRowCallback(this);
    })
    .fail(() => {
        alert("There was an error!");
    });
}

Jedynym sposobem na zachowanie odniesienia „this” do mojej klasy jest przekazanie jej do wywołania zwrotnego, jak pokazano powyżej. To działa, ale to kod spodni. Jeśli nie poddam tego „tak” (przepraszam), to wszelkie odwołania do tej metody wywołania zwrotnego powróciły do ​​obiektu Window. Ponieważ używam funkcji strzałek przez całą drogę, spodziewałem się, że „to” będzie samą klasą, tak jak w innych miejscach mojej klasy.

Ktoś wie, jak przekazywać wywołania zwrotne w TypeScript, zachowując zakres leksykalny?

questionAnswers(5)

yourAnswerToTheQuestion