You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ionic+Vue中data数组push报any类型不能赋值给never类型怎么解决?

问题原因

你初始化events为无类型的空数组时,TypeScript无法推断数组元素的类型,会默认将其推导为never[]类型,该类型的数组不允许插入任何类型的值,因此调用push方法时报错。

解决步骤

1. 先定义事件项的类型

根据你模板中用到的字段,先声明对应的数据结构:

interface EventItem {
  event_ID: number;
  event_title: string;
  event_picture: string;
  address_exists: boolean;
  event_day: number;
  event_month: number;
  is_virtual: boolean;
  // 可根据实际业务补充其他字段
}

2. 在data中为数组指定类型

通过类型断言给初始空数组标注类型即可,写法如下:

// Vue3 选项式API需要用defineComponent包裹组件才能正确推导类型
import { defineComponent } from 'vue';

export default defineComponent({
  data() {
    return {
      // 核心是通过as关键字指定数组类型
      events: [] as EventItem[]
    };
  },
  methods: {
    loadMore() {
      // 如果response.data是单条事件数据
      this.events.push(response.data as EventItem);
      
      // 如果response.data是多条事件组成的数组,改用扩展运算符插入
      // this.events.push(...(response.data as EventItem[]));
    }
  }
})

如果你使用的是Vue2 + TypeScript,只要把组件声明换成Vue.extend或者对应装饰器写法,data里的类型断言逻辑完全相同。

内容的提问来源于stack exchange,提问作者Jean R.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 19:57:04