1.事件类型该怎么定义
import { ComponentProps } from 'react'
const onClick: ComponentProps<'div'>['onClick'] = (e)=>{// e的类型被自动推导
e.//会得到代码提示
}
<div onClick={onClick}><div>
同样,我们在引入自定义组件时,也不需要单独引入它的props类型,直接使用这个泛型即可:
import { type ComponentProps } from 'react'
const onClick: ComponentProps<typeof Custom>['onClick'] = (e)=>{// e的类型被自动推导
e.//会得到代码提示
}
<Custom onClick={onClick}></Custom>
2. ref的类型该怎么定义
这种方式定义的valueRef的类型是`MutableRefObject` 可变的引用对象
除了这种方式,还有一种不可变的,对应的类型是`RefObject` 只读的引用对象 感觉这俩就是const和let一样
看一下区别
import { useRef, type `MutableRefObject`, type RefObject } form 'react'
const valueRef1: `MutableRefObject`<number> = useRef(0)
const valueRef2: RefObject<number> = useRef(0)
valueRef1.current = 1; // 正常
valueRef2.current = 1; // 报错,不能赋值: 无法分配到 "current" ,因为它是只读属性。