<html>Vue: Type ‘{ text: string; id: string; }[]‘ is not assignable to type ‘never[]‘.<br/>Type ‘{ t

报错<html>Vue: Type '{ text: string; id: string; }[]' is not assignable to type 'never[]'.<br/>Type '{ text: string; id: string; }' is not assignable to type 'never'.

出错代码如下:

const onSearch = () => {
  // 将所有子标签拿出来拼成一个数组
  // console.log(tagList.flatMap(parentTag => parentTag.children))
  activeIds.value = tagList.
  flatMap(parentTag => parentTag.children)
      .filter(item => item.text.includes(searchText.value));
  }

问题原因如描述所示,就是类型不匹配,可以用类型断言,将结果显式地指定为 Never 数组类型,你报错不符合什么类型,就显示地指定为什么类型,这样就可以避免类型不匹配的报错。我只想要里边的id就加了一个map

 
const onSearch = () => {
  // 将所有子标签拿出来拼成一个数组
  // console.log(tagList.flatMap(parentTag => parentTag.children))
  activeIds.value = tagList.
  flatMap(parentTag => parentTag.children)
      .filter(item => item.text.includes(searchText.value)).map(item => item.id) as [];
  }

类型断言并不会改变变量的实际类型,而只是在编译时告诉编译器将其视为特定类型。因此,在使用类型断言时,需要确保代码逻辑和数据类型是一致的,以避免潜在的运行时错误。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值