Ter a interface Props padrão definida como pública torna possível reutilizar a definição de Props ao criar minha própria versão customizada do componente.
Por exemplo, ao criar meu Componente de Login, devo:
import { FormComponentProps } from 'antd/lib/form/Form'
class Login extends React.Component<{} & FormComponentProps, {}> {
render() {
// some render code
}
}
Mas seguir talvez seja melhor:
import { FormComponentProps } from 'antd'
class Login extends React.Component<{} & FormComponentProps, {}> {
render() {
// some render code
}
}
Finalmente:
import { FormComponentProps } from 'antd/lib/form'
class Login extends React.Component<{} & FormComponentProps, {}> {
render() {
// some render code
}
}
Assim como este pacote de IU baseado em TS: blueprint
Acho que o seguinte é bom o suficiente:
import { FormComponentProps } from 'antd/lib/form'
class Login extends React.Component<{} & FormComponentProps, {}> {
render() {
// some render code
}
}
Acho que o primeiro é melhor.
A escolha da segunda maneira pode ser porque a primeira exposta também pode ter interfaces, mas essas interfaces são muito úteis quando se usa TypeScript, quem não usa TS simplesmente não as vê.
Muitos dos frameworks escritos em TS irão expor a interface ao máximo e não encontrarão problemas.
Claro, a segunda maneira pode atender às necessidades. O objetivo deste ISSUE é unificar a localização exposta da interface . A situação atual é que a localização da interface é imprevisível na pasta lib/[component name]/
.
Mas ainda espero que o primeiro possa ser adotado, obrigado.
Oi, estou tentando descobrir por que não está funcionando para mim, mas, eu tenho este erro node_modules / antd / lib / form / index "'não exportou membro' FormComponentProps '.
minha solução alternativa foi importar {FormComponentProps} de 'antd / lib / form / Form';
O que estou fazendo de errado?
@DavidNorena
Você quer dizer que tenta isso: import { FormComponentProps } from 'antd/lib/form
, mas obteve um erro?
claro que é um erro, porque FormComponentProps
não está exposto em lib/form
dir agora, é por isso que envio este problema :)
@newraina ahhhh agora entendi! : D desculpe, entretanto vou usar import {FormComponentProps} de 'antd / lib / form / Form'; OK ?
@DavidNorena Sim
Você pode nos ajudar nisso.
Comentários muito úteis
Acho que o primeiro é melhor.
A escolha da segunda maneira pode ser porque a primeira exposta também pode ter interfaces, mas essas interfaces são muito úteis quando se usa TypeScript, quem não usa TS simplesmente não as vê.
Muitos dos frameworks escritos em TS irão expor a interface ao máximo e não encontrarão problemas.
Claro, a segunda maneira pode atender às necessidades. O objetivo deste ISSUE é unificar a localização exposta da interface . A situação atual é que a localização da interface é imprevisível na pasta
lib/[component name]/
.Mas ainda espero que o primeiro possa ser adotado, obrigado.