react-docgen
react-docgen copied to clipboard
Implicitly typed `props` in FunctionComponent not found
Given the following component structure:
import React from "react";
interface ButtonProps {
onClick: () => void;
}
const Button: React.FC<ButtonProps> = (props) => {
return <button {...props}>Hello world</button>;
};
export default Button;
react-docgen returns an object without any props:
{
"description": "",
"displayName": "Button",
"methods": []
}
However, if props is explicitly typed, the expected props are returned:
const Button: React.FC<ButtonProps> = (props: ButtonProps) => {
{
"description": "",
"displayName": "Button",
"methods": [],
"props": {
"onClick": {
"required": true,
"tsType": {
"name": "signature",
"type": "function",
"raw": "() => void",
"signature": {
"arguments": [],
"return": {
"name": "void"
}
}
},
"description": ""
}
}
}
Given that TypeScript properly detects props as ButtonProps without the explicit typing (pulled from React.FC<ButtonProps> type of the component itself), it feels like this shouldn't be a required case to parse props correctly. Is there any easy way to tweak the existing resolver to read the generic type of React.FC?
Thanks for reporting. You are right that this totally should work. We will have a look soon.
Can you describe how to attack this problem? I'd like to try working on a PR.
Fixed in 7.0