Javascript Typescript-为什么AxiosPromise没有属性“0”;。最后一句话;?
我正在将一个JS文件转换为TS。这是有问题的原始代码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 });
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)
.然后(完成)代码>