我想将新方法catchAndLog
添加到现有的Promise
类中。
在普通JS中,它很容易使用Object.defineProperty(Promise.prototype, 'catchAndLog', ...)
。但是,打字稿似乎不明白这一点。
如何让打字稿编译器知道Promise
现在具有一个附加的成员属性,以便在我执行Promise.reject('error').catchAndLog()
时不会抱怨?
答案 0 :(得分:2)
您可以按照与Javascript中相同的方式进行操作,唯一的不足是您需要为新添加的方法添加一个定义,以便打字稿知道它。
declare global { // Remove this enclosing global if you are not in a module
interface Promise<T> {
catchAndLog(): Promise<T>
}
}
Object.defineProperty(Promise.prototype, 'catchAndLog', {
})
Promise.reject('error').catchAndLog()