关于vue中ref的类型声明

来源:2-6 思考题:对象变量.__proto__.方法 和对象变量.方法的不同【原理加固题】

有没有没被占用的昵称

2021-11-17

老师,我观察到element-plus的源码中,他会这样声明变量
比如 const name = ref(null)
按理说null是无法转换成string的呀,请问老师他是做了什么配置吗

写回答

4回答

keviny79

2021-11-17

1.

const name = ref(null) 这里写的 是 js 版本,转换为TS版本  const name:Ref = ref(null) 

Ref 默认泛型为any 可以接受任意数据类型的值

interface Ref<T=any>{

   value:T

}  


2.使用场景还用:当我们在运行后才确定 ref.value的值,就可以这样使用

例如:获取组件上的Dom元素


//  通过ref来获取真实的DOM元素节点【查询顾客中的表单】,ref不带参数或null

let custListRef: Ref = ref(null) 或

let custListRef: Ref = ref() 或

let custListRef: Ref = ref(undefined) 或

custListRef.value.model;


提交答案系统出现了滞后,发重了一次,忽略


0
3
有没有没被占用的昵称
非常感谢!
2021-11-17
共3条回复

keviny79

2021-11-17


唯一原因就是 它的对应的tsconfig.json文件 配置的缘故:

关闭了"strict": true   和  "strictNullChecks": true    ,下面的都能编译通过!

//img.mukewang.com/szimg/6194b8270888e39110620686.jpg

0
0

keviny79

2021-11-17

1.

const name = ref(null) 这里写的 是 js 版本,转换为TS版本  const name:Ref = ref(null) 

Ref 默认泛型为any 可以接受任意数据类型的值

interface Ref<T=any>{

   value:T

}  


2.使用场景:当我们在运行后由系统确定 ref.value的值时,就可以这样使用

例如:获取组件上的Dom元素


//  通过ref来获取真实的DOM元素节点【查询顾客中的表单】,ref不带参数或null

let custListRef: Ref = ref(null) 或

let custListRef: Ref = ref() 或

let custListRef: Ref = ref(undefined) 

custListRef.value.model;// 调用model数据




0
0

keviny79

2021-11-17

1.

const name = ref(null) 这里写的 是 js 版本,转换为TS版本  const name:Ref = ref(null) 

Ref 默认泛型为any 可以接受任意数据类型的值

interface Ref<T=any>{

   value:T

}  


2.使用场景:当我们在运行后才确定 ref.value的值,就可以这样使用

例如:获取组件上的Dom元素


//  通过ref来获取真实的DOM元素节点【查询顾客中的表单】,ref不带参数或null

let custListRef: Ref = ref(null) 或

let custListRef: Ref = ref() 或

let custListRef: Ref = ref(undefined) 或

custListRef.value.model;




0
0

晋级TypeScript高手,成为抢手的前端开发人才

轻松驾驭 TypeScript 高级用法, 突破前端成长瓶颈

871 学习 · 425 问题

查看课程