Javascript Typescript-为什么AxiosPromise没有属性“0”;。最后一句话;?

Javascript Typescript-为什么AxiosPromise没有属性“0”;。最后一句话;?,javascript,typescript,axios,Javascript,Typescript,Axios,我正在将一个JS文件转换为TS。这是有问题的原始代码 let refreshToken = null; if (refreshToken == null) { refreshToken = // get the axios instance... } refreshToken .then(() => { // something }) .catch(() => { // something }) .finally(() => { // something });

我正在将一个JS文件转换为TS。这是有问题的原始代码

let refreshToken = null;

if (refreshToken == null) {
    refreshToken = // get the axios instance...
} 

refreshToken
.then(() => { // something })
.catch(() => { // something })
.finally(() => { // something });
因此,我将其转换为:

let refreshToken : AxiosPromise | null = null;

if (refreshToken == null) {
    refreshToken = // get the axios instance...
} 

refreshToken
.then(() => { // something })
.catch(() => { // something })
.finally(() => { // something });
但是
最后给了我一个错误:

类型承诺上不存在属性“finally”

为什么呢

我所采用的方法是编写
(refreshToken作为任何工具)
,但这似乎是一种逃避解决方案。TypeScript难道不能推断
refreshToken
AxiosPromise

$ npm install axios promise.prototype.finally --save
把这个加到上面

require('promise.prototype.finally').shim();

或者,您可以再附加一个
。然后
作为链的最后一部分。本机承诺的示例(此行为应相同)正确/错误,如下所示:

函数fakeGet(已传递){
返回新承诺((resolve,reject)=>setTimeout(已通过?resolve:reject,1000));
}
函数onComplete(已通过){
console.log(通过?'Success':'Failed')
}
假的(真的)
.然后(()=>真)
.catch(()=>false)
.然后(完成);
伪造(假)
.然后(()=>真)
.catch(()=>false)
.然后(完成)