今天在用element-plus写表单的时候,老师在用ref获取组件以后, 下面写的是
const formRef = ref<InstanceType<typeof ElForm>>()
在网上搜了很多也不明白这个InstanceType<type>到底怎么用,以及下面的两种用法有什么区别吗
type PersonType1 = InstanceType<typeof Person>
const p1: PersonType1 = new Person('tom', 22)
type PersonType2 = typeof Person
const p2: PersonType2 = new Person('23', 2)
谢谢各位!! T T
作用是用构造函数的类型推断其实例的类型,
InstanceType<new (...args) => T>
的结果就是T
当你定义一个
class Person
,同时Person
typeof Person
Person
所以,
InstanceType<typeof Person>
即是类型Person
。在vue中需要
InstanceType<typeof Component>
得到组件实例类型,而不是直接用Component
作为类型,是因为Component
不是class,它只是一个构造函数,他没有声明实例类型。