Wie kann ich den lexikalischen Umfang in TypeScript mit einer Rückruffunktion erhalten?

Ich habe eine TypeScript-Klasse mit einer Funktion, die ich als Rückruf verwenden möchte:

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

Ich gebe es an eine andere Funktion weiter

this.deleteRow(this.removeRow);

Dies ruft wiederum eine jQuery Ajax-Methode auf, die bei Erfolg den Rückruf folgendermaßen aufruft:

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

Die einzige Möglichkeit, den Verweis auf meine Klasse beizubehalten, besteht darin, ihn an den Rückruf weiterzuleiten, wie oben gezeigt. Es funktioniert, aber es ist Hosencode. Wenn ich das 'this' nicht wie folgt verkabele (sorry), wurde ein Verweis auf dieses in der Callback-Methode auf das Window-Objekt zurückgesetzt. Da ich die ganze Zeit über Pfeilfunktionen verwende, habe ich erwartet, dass das "Dies" die Klasse selbst ist, wie es auch anderswo in meiner Klasse ist.

Weiß jemand, wie man Rückrufe in TypeScript weitergibt und dabei den lexikalischen Bereich beibehält?

Antworten auf die Frage(5)

Ihre Antwort auf die Frage