调用组件时,如何让ts提示组件内部暴露的方法?

来源:3-15 useContext - 解决多层传递属性的灵丹妙药

慕粉8564437

2021-08-24

既然组件的参数里,我们可以用React.FC里设置接口参数,在引入组件的时候自动提示参数;那能不能在给组件设置ref的时候,配合组件内部的useImperativeHandle和forwardRef,调用组件内部暴露方法的时候,自动提示方法的名称?
——————————————————
我在开发一个转盘抽奖的组件,参数接口和对外暴露的方法的接口如下
图片描述
图片描述

在导入组件的时候,输入arrowStyle会有自动补全提示;
图片描述

我想在调用组件内部方法的时候,也有自动提示,但似乎只有在声明RefObject类型的时候才会出现自动补全的提示。图片描述图片描述
所以我想请问老师,有没有好的方法,让我不用去使用组件内部的接口,就能有内部方法的提示?

写回答

2回答

张轩

2021-08-26

同学你好 我获取ref 类型就是和你一样的方法来完成的。受限于 ts type assertion 的特性,我没有想到其他的形式可以完成这个功能。

// input
export const Input = forwardRef<HTMLInputElement, InputProps>((props, ref) => {})
// 使用的组件 需要确定他的类型
const input = useRef<HTMLInputElement>(null)
// input.current 获得了正确的类型
<Input
    ref={input}
/>

对于这个问题,我今明两天可以再调研一下,看看是否能实现你的要求。

0
1
慕粉8564437
非常感谢!
2021-11-08
共1条回复

张轩

2021-08-25

同学你好 抱歉没有特别理解你的意思 请问是否能提供简单的示例代码来表达一下你的意思?这样有助于更好的理解问题的描述

0
1
慕粉8564437
老师,我更新了问题描述
2021-08-25
共1条回复

React18+TS高仿AntD从零到一打造组件库

设计,开发,测试,发布再到 CI/CD,从0到1造轮子

2123 学习 · 959 问题

查看课程