Мы используем классы TypeScript с наследованием и сталкиваемся с очевидной проблемой. TypeScript/JavaScript не позволяет нам называть «супер» из структуры обещаний (или даже из закрытой функции). Мы получаем эту ошибку:Наследование типа TypeScript: «супер» может ссылаться только на членов производных классов или условных выражений объекта
Машинописи: «супер» может быть только Реферированы в членах производных классов или объектах Буквенных выражений
Есть ли способ обойти это? Вот код:
export class VendorBill extends Transaction {
constructor() {
super();
}
save() {
let deferred = $.Deferred();
$.ajax({
type: "GET",
url: '/myrestapi',
success: function (data) {
deferred.resolve();
},
error: function (jqXHR: any, textStatus, errorThrown) {
deferred.reject()
}
})
$.when(deferred).always(function() {
super.save(); <----------- THIS IS CAUSING THE ERROR
})
}
}
Также стоит отметить, что вы используете обещание антипаттерн использовать дополнительный отложенный объект, когда он не нужен. Вы можете просто сделать '$ .ajax ({...}). Always (() => {super.save();});' – Adam