Vue+TypeScript 错误TS2345

这两天老大让我优化项目代码,把axios请求回来的数据做统一接口结构的封装,过程中遇到了一些坑,特将问题记录下来,以便以后回顾

问题

Argument of type '(res: IAxiosResponse) => void' is not assignable to parameter of type '(value: unknown) => void | PromiseLike'.
Types of parameters 'res' and 'value' are incompatible.
Type 'unknown' is not assignable to type 'IAxiosResponse'.

描述

一开始我直接在全局声明了一个接口
Vue+TypeScript 错误TS2345_第1张图片

直接匹配返回值
image.png

报了类型不匹配的错误
Vue+TypeScript 错误TS2345_第2张图片

看到报错的意思大概是:返回类型“unknown”不能分配给类型“IAxiosResponse”

解决方法
顺着问题找到axio封装那层检查Promise返回类型的定义,想着可不可以给Promise定义返回类型
于是我网上找到给Promise定义返回值的方法:https://www.jianshu.com/p/4f7...

代码
Vue+TypeScript 错误TS2345_第3张图片

这时问题就解决了

你可能感兴趣的:(vue.js,typescript)