reactjs / reactjs/react-docgen
Support React.Config
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- TypeScript
- Sterne
- 3.8k
- Forks
- 316
- Ø Merge
- 5 Std. 7 Min.
- Gemergte PRs (30 T.)
- 4
Beschreibung
For functional components we can use React.Config to define default props:
import * as React from 'react';
type DefaultProps = $ReadOnly<{
/** Description for defaultProp. */
defaultProp: number,
}>;
type AllProps = $ReadOnly<{
...DefaultProps,
/** Description for optionalProp. */
optionalProp?: number,
/** Description for requiredProp. */
requiredProp: number,
}>;
type Props = React.Config<AllProps, DefaultProps>;
export default function Component({
defaultProp = 0,
optionalProp,
requiredProp,
}: Props) {
return <div />;
}
But react-docgen fails to parse all the props properly. It only parses the default prop but not the other two props.
{
"description": "",
"displayName": "Component",
"methods": [],
"props": {
"defaultProp": {
"defaultValue": {
"value": "0",
"computed": false
},
"required": false
},
"optionalProp": {
"defaultValue": {
"value": "0",
"computed": false
},
"required": false
}
}
}
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne mit dem Beispiel der Funktionskomponente und seiner gemeldeten JSON-Ausgabe und verfolge anschließend, wie react-docgen React.Config und destrukturierte Props verarbeitet. Als abgeschlossen gilt die Aufgabe, wenn die Einträge defaultProp, optionalProp und requiredProp jeweils mit den korrekten Metadaten für required und default value geparst werden.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- react
- Bereich
- tooling
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100