TypeScript中如何声明复杂类型并完成数据类型转换?
你可以按照类似Go中先定义结构体再声明结构体数组的逻辑实现,具体操作如下:
- 先定义单条事件数据的类型结构,等价于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 }
- 给ref添加泛型参数,指定该响应式变量存储的是
EventItem类型的数组,等价于Go中声明结构体数组变量:
// 泛型参数明确数组元素类型后,TS就不会把空数组推断为never[] let allEvents = ref<EventItem[]>([])
修改完成后你原有的赋值代码不需要改动,编译错误就会消失。
错误原因说明
你之前直接用ref([])初始化时,TS没有足够的类型信息,只能根据空数组默认推断类型为never[],而never类型不允许接收任何实际值,所以赋值带字段的对象数组时会触发类型不匹配的报错。
内容的提问来源于stack exchange,提问作者WoJ
相关产品推荐
相关产品推荐

