最佳答案
使用@type/response 16.8.2和 TypeScript 3.3.1。
我直接从 反应文件中提取了这个正向参考示例,并添加了一些类型参数:
const FancyButton = React.forwardRef<HTMLButtonElement>((props, ref) => (
<button ref={ref} className="FancyButton">
{props.children}
</button>
));
// You can now get a ref directly to the DOM button:
const ref = React.createRef<HTMLButtonElement>();
<FancyButton ref={ref}>Click me!</FancyButton>;
我在 FancyButton
的最后一行得到以下错误:
类型‘
{ children: string; ref: RefObject<HTMLButtonElement>; }
’则不是 可赋值为类型“IntrinsicAttributes & RefAttributes<HTMLButtonElement>
”。属性“children
”不能 存在于类型‘IntrinsicAttributes & RefAttributes<HTMLButtonElement>
’. ts (2322)上
似乎 React.forwardRef 的返回值的类型定义是错误的,没有正确地合并到子道具中。如果我让 <FancyButton>
自动关闭,错误就会消失。缺少这个错误的搜索结果使我相信我遗漏了一些显而易见的东西。