对于ref和reactive数据的一点小疑问

来源:3-9 vue3 响应式对象的新花样

慕莱坞0998854

2021-03-23

老师的代码如下

interface IData {
  numbers: number[];
  person: {
    name?: string;
  };
}
const data: IData = reactive({
   numbers: [0, 1, 2],
   person: {},
});

老师你看,我们定义的data类型是IData,它就是reactive函数的参数的形状, 不能写作Ref

但是如果我们要定义一个数组,应该写作

const dataRef: Ref<Array<number>> = ref([12,17])

// 下面的写法是错误的
const dataRef:Array<number> = ref([12,17])

感觉还是对该怎么写类型不太清楚

写回答

1回答

张轩

2021-03-24

同学你好 

dataRef:Array<number>  代表的是 数字的数组
而 ref([12, 17]) 返回的并不是数字的数组,而是 ref.value 才是数字的数组类型

 dataRef: Ref<Array<number>> 这么写,这里的泛型代表着 value 的类型。也就是说它指定
 ref.value 是 Array<number> 类型的,和后面的函数返回是一致的,所以不会出错。


0
1
慕莱坞0998854
非常感谢!
2021-03-25
共1条回复

Vue3 + TS 仿知乎专栏企业级项目

带你完成前后端分离复杂项目,率先掌握 vue3 造轮子技能

3142 学习 · 2313 问题

查看课程