TS不能将类型“any[]”分配给类型“never[]”

发布时间:2022-06-08 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了TS不能将类型“any[]”分配给类型“never[]”脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

1、问题:在处理数组hotGoodsList时出现一个错误,提示不能将类型“any[]”分配给类型“never[]”

  data: {
    hotGoodsForm: {
      pageNum: 1,
      pageSize: 10
    },
    hotGoodsList: [],
  },
... app.ajax.post('/api/goods/getHotGoods', this.data.hotGoodsForm).then((res: any) => {
      if (res.list.length != 0) {
        this.setData({
          hotGoodsList: [...this.data.hotGoodsList, ...res.list],
          homeLoadStatus: 0
        })
      } else {
        this.setData({
          homeLoadStatus: 2
        })
      }
    })

2、原因:res已经定义了any类型,但是hotGoodsList的类型还没有定义,默认为never

3、处理:这里要用到TS的类型断言,通过TS的类型断言强制把hotGoodsList的类型转化为any,就正常不会报错了

TS断言有两种方式

  data: {
    hotGoodsForm: {
      pageNum: 1,
      pageSize: 10
    },
    //第一种是尖括号语法
    hotGoodsList: <any>[]
  },
  data: {
    hotGoodsForm: {
      pageNum: 1,
      pageSize: 10
    },
    //第二种是as语法
    hotGoodsList: [] as any  },

 

脚本宝典总结

以上是脚本宝典为你收集整理的TS不能将类型“any[]”分配给类型“never[]”全部内容,希望文章能够帮你解决TS不能将类型“any[]”分配给类型“never[]”所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: