Le fait d'avoir l'interface Props standard définie comme publique permet de réutiliser la définition Props lors de la création de ma propre version personnalisée du composant.
Par exemple, lors de la création de mon composant de connexion, je dois:
import { FormComponentProps } from 'antd/lib/form/Form'
class Login extends React.Component<{} & FormComponentProps, {}> {
render() {
// some render code
}
}
Mais en suivant peut-être mieux:
import { FormComponentProps } from 'antd'
class Login extends React.Component<{} & FormComponentProps, {}> {
render() {
// some render code
}
}
Au moins:
import { FormComponentProps } from 'antd/lib/form'
class Login extends React.Component<{} & FormComponentProps, {}> {
render() {
// some render code
}
}
Tout comme ce package d'interface utilisateur basé sur TS: blueprint
Je pense que ce qui suit est assez bon:
import { FormComponentProps } from 'antd/lib/form'
class Login extends React.Component<{} & FormComponentProps, {}> {
render() {
// some render code
}
}
Je pense que le premier est meilleur.
Le choix de la deuxième méthode peut être dû au fait que la première exposée peut également être une interface, mais ces interfaces sont très utiles lors de l'utilisation de TypeScript, ceux qui n'utilisent pas TS ne les voient tout simplement pas.
De nombreux frameworks écrits en TS exposeront l'interface aux plus externes et ne trouveront aucun problème.
Bien sûr, la deuxième façon peut répondre aux besoins. Le but de ce PROBLÈME est d'unifier l'emplacement exposé de l'interface . La situation actuelle est que l'emplacement de l'interface est imprévisible dans le dossier lib/[component name]/
.
Mais j'espère toujours que le premier pourra être adopté, merci.
Salut, j'essaie de comprendre pourquoi ne fonctionne pas pour moi mais, j'ai cette erreur node_modules / antd / lib / form / index "'n'a pas de membre exporté' FormComponentProps '.
ma solution de contournement était l'importation {FormComponentProps} à partir de 'antd / lib / form / Form';
Qu'est-ce que je fais mal?
@DavidNorena
Voulez-vous dire que vous essayez ceci: import { FormComponentProps } from 'antd/lib/form
, mais obtenez une erreur?
bien sûr, c'est une erreur, car FormComponentProps
n'est pas exposé dans lib/form
dir maintenant, c'est pourquoi je soumets ce problème :)
@newraina ahhhh maintenant je comprends! : D désolé, alors en attendant, j'utiliserai import {FormComponentProps} de 'antd / lib / form / Form'; D'accord ?
@DavidNorena Oui
Vous pouvez nous aider pour cela.
Commentaire le plus utile
Je pense que le premier est meilleur.
Le choix de la deuxième méthode peut être dû au fait que la première exposée peut également être une interface, mais ces interfaces sont très utiles lors de l'utilisation de TypeScript, ceux qui n'utilisent pas TS ne les voient tout simplement pas.
De nombreux frameworks écrits en TS exposeront l'interface aux plus externes et ne trouveront aucun problème.
Bien sûr, la deuxième façon peut répondre aux besoins. Le but de ce PROBLÈME est d'unifier l'emplacement exposé de l'interface . La situation actuelle est que l'emplacement de l'interface est imprévisible dans le dossier
lib/[component name]/
.Mais j'espère toujours que le premier pourra être adopté, merci.