Ant-design: [Solicitação de recurso] Definição da interface de Export Props em todos os arquivos index.d.ts do componente

Criado em 23 jun. 2017  ·  8Comentários  ·  Fonte: ant-design/ant-design

Qual problema esse recurso resolve?

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.

Qual é a aparência da API proposta?

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

help wanted 🗣 Discussion

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.

Todos 8 comentários

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.

Esta página foi útil?
0 / 5 - 0 avaliações