Как я могу сохранить лексическую область видимости в TypeScript с помощью функции обратного вызова

У меня есть класс TypeScript с функцией, которую я намерен использовать в качестве обратного вызова:

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

Я передаю это в другую функцию

this.deleteRow(this.removeRow);

который в свою очередь вызывает метод jQuery Ajax, который в случае успеха вызывает обратный вызов следующим образом:

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

Единственный способ сохранить ссылку «this» на мой класс - передать его в функцию обратного вызова, как показано выше. Это работает, но это код штанов. Если я не подключу «this» таким образом (извините), то любая ссылка на this в методе обратного вызова вернется к объекту Window. Поскольку я все время использую функции со стрелками, я ожидал, что «this» будет сам класс, как и везде в моем классе.

Кто-нибудь знает, как передавать обратные вызовы в TypeScript, сохраняя лексическую область видимости?

Ответы на вопрос(5)

Ваш ответ на вопрос