J'ai rencontré une déclaration de type dans la bibliothèque react-router
qui me pose beaucoup de problèmes de compréhension :
export interface RouteComponentProps<
Params extends { [K in keyof Params]?: string } = {},
C extends StaticContext = StaticContext,
S = H.LocationState
> {
...
}
La première ligne des génériques est la plus difficile pour moi. Et j'aimerais avoir de l'aide à ce sujet...
Params extends { [K in keyof Params]?: string } = {}
D'après ce que j'ai compris, nous prenons une interface appelée Params
en tant qu'argument, puis nous rendons chaque élément de cette interface facultatif. Nous manipulons donc l'interface passée.
J'ai également beaucoup de mal à comprendre le signe égal = {}
. Qu'est-ce que cela signifie d'étendre une interface et de la rendre égale à quelque chose ? Merci de votre compréhension.