У меня есть класс, который расширен от глобального класса Promise и должен иметь несколько дополнительных функций normal и asyn c. Нормальные функции, такие как «init», работают, но асин c, такой как «doSomething», не работает.
Всегда выдает следующую ошибку машинописи:
Возвращаемый тип asyn c функция или метод должны иметь глобальный тип Promise.
Я не знаю, почему это не работает. Вот код, над которым я работаю.
class MyPromise<T> extends Promise<T> {
private somedata = {};
constructor(executor: (resolve: (value?: T | PromiseLike<T>) => void, reject: (reason?: any) => void) => void) {
super(executor);
}
public static init<T>(executor: (resolve: (value?: T | PromiseLike<T>) => void, reject: (reason?: any) => void) => void): MyPromise<T> {
return new MyPromise(executor);
}
public async doSomething(fnc: () => Promise<number>): MyPromise<T> {
this.somedata = await fnc();
return this;
}
}
Обновление: @Evert был прав, это была проблема XY.