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

TypeScript中如何声明复杂类型并完成数据类型转换?

你可以按照类似Go中先定义结构体再声明结构体数组的逻辑实现,具体操作如下:

  1. 先定义单条事件数据的类型结构,等价于Go中的结构体定义:
interface EventItem {
  start: string
  end: string
  name: string
  id: string
  important: boolean
}

如果偏好type别名的写法也可以替换为:

type EventItem = {
  start: string
  end: string
  name: string
  id: string
  important: boolean
}
  1. 给ref添加泛型参数,指定该响应式变量存储的是EventItem类型的数组,等价于Go中声明结构体数组变量:
// 泛型参数明确数组元素类型后,TS就不会把空数组推断为never[]
let allEvents = ref<EventItem[]>([])

修改完成后你原有的赋值代码不需要改动,编译错误就会消失。

错误原因说明

你之前直接用ref([])初始化时,TS没有足够的类型信息,只能根据空数组默认推断类型为never[],而never类型不允许接收任何实际值,所以赋值带字段的对象数组时会触发类型不匹配的报错。


内容的提问来源于stack exchange,提问作者WoJ

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 11:09:00