请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

result加初始值null就会报错

老师,请问一下,为什么我给result加了初始值null就会报错呢?
图片描述
在下一节添加了范型后报错
图片描述

正在回答 回答被采纳积分+3

2回答

张轩 2021-10-15 21:24:55

同学你好 由于 axios 的定义文件更新,现在的rawData.data 变成了 unknown 类型 ,而不是 any。

所以我们要对他做一个特别的转换。最简单的方法就是在 axios.get 添加一个泛型,对应的就是 rawData.data

axios.get<any>(url).then((rawData) => {
    loading.value = false
    loaded.value = true
    result.value = rawData.data
}).catch(e => {
    error.value = e
    loading.value = false
})
0 回复 有任何疑惑可以回复我~
  • 老师我在给get添加any范型后有eslint警告Unexpected any. Specify a different type.我把any改为了never后警告消除,在app.vue文件中的result也能正常读取类型,请问这样是可以的吗?
    回复 有任何疑惑可以回复我~ 2021-10-16 13:55:48
  • 张轩 回复 提问者 weixin_慕工程2153836 #2
    这个是 eslint 的一个规则,就是它看到任何定义 any 的地方都是爆出这个警告,我们这里属于一个特例,(偶尔为了解决一些问题还是需要用 any 的)所以你可以将这个规则关闭就可以了。
    具体规则:"@typescript-eslint/no-explicit-any": ["off"]
    回复 有任何疑惑可以回复我~ 2021-10-17 09:42:57
  • 提问者 weixin_慕工程2153836 回复 张轩 #3
    好的,谢谢老师
    回复 有任何疑惑可以回复我~ 2021-10-17 11:01:09
张轩 2021-10-15 09:36:46

同学你好 请问你的 axios 是什么版本? 看起来有可能是新版的 axios 将 rawData.data 变成了 unknown 类型,不是原来的 any 类型,造成了两者的不匹配,请告知一下版本吧。我在本地看一下

0 回复 有任何疑惑可以回复我~
  • 是0.23.0版本的
    回复 有任何疑惑可以回复我~ 2021-10-15 10:07:48
  • csupwj #2
    我也碰到了这个问题 要怎么解决呢
    回复 有任何疑惑可以回复我~ 2021-10-15 15:16:04
  • 张轩 回复 csupwj #3
    同学请看 这个问题http://coding.imooc.com/learn/questiondetail/248724.html
    回复 有任何疑惑可以回复我~ 2021-10-15 21:20:20
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信