reactjs / reactjs/react-docgen
Interface extends are supported but not the type ampersand syntax
Nessuno ha ancora preso questa issue.
- Lingua principale
- TypeScript
- Stelle
- 3.8k
- Fork
- 316
- Merge medio
- 5h 7m
- PR unite (30g)
- 4
Descrizione
If we use types in Typescript that can be extended with ampersand syntax &, it won't work.
For example, we have a pretty funky type definition like this in our repository:
export type ILinkProps = ITypeAgnosticLinkProps &
Omit<INextLinkProps, "children"> & {
/**
* Disables a link, visually and functionally
* @default false
*/
isDisabled?: boolean;
/**
* Sets `target="_blank"` and `rel="noreferrer"` explicitly.
* If props contain `target="_blank"` and `rel="noreferrer"`
* this will be set to isExternal automatically.
* _NOTE:_ This is a pure technical flag, if you're looking for a visual
* representation of an external link, use the `icon` and the `iconPosition` prop.
*/
isExternal?: boolean;
};
First it won't work because of the Omit, but if that would be solved (or deleted), it still doesn't work as the & is not recognized as extends.
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Inizia riproducendo l’esempio TypeScript segnalato, inclusi l’utility Omit e le intersezioni con ampersand, quindi segui il percorso di analisi dei tipi che gestisce interface extends. Controlla i test esistenti per l’estrazione dei tipi TypeScript, se disponibili. Il lavoro è completato quando vengono riconosciute sia la sintassi delle intersezioni sia la definizione basata su Omit mostrata, senza interrompere il comportamento esistente di interface extends.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- typescript
- Ambito
- documentation
- Tipo di issue
- Bug
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 45/100