Я пытался создать собственный класс, который расширяет встроенный Promise
, но некоторые его методы не работают должным образом.
Будет работать следующий es6:
class MyPromise extends Promise{
mythen(cb){
return this.then(cb)
}
}
MyPromise.resolve().mythen(()=>1).mythen(console.log)
Но следующие типы не делают:
class MyPromise<T> extends Promise<T>{
mythen(cb){
return this.then(cb)
}
}
MyPromise.resolve().mythen(()=>1).mythen(console.log)
Я обнаружил, что MyPromise.resolve()
возвращает Promise<void>
вместо MyPromise<void>
.Однако, согласно поведению es6, MyPromise.resolve()
возвращает MyPromise<void>
.
Означает ли это, что мне нужно переопределить каждый Promise
метод, такой как resolve
then
catch
....?