BrasilAPI / cep-promise

Busca por CEP integrado diretamente aos serviços dos Correios, ViaCEP e outros (Node.js e Browser)
MIT License
2.88k stars 316 forks source link

Interface para TS #168

Closed gmtns closed 1 year ago

gmtns commented 4 years ago

Fala galera, beleza!?

Apenas uma sugestão simples; image

Um export nessa interface CEP ia ajudar a galera do typescript. Ou até um @ types/ também.. .

Posso estar viajando ou não ter achado esse export em algum lugar

Mas tive que alterar manualmente para poder usar legal no TS: image image

SergioVago commented 3 years ago

Eu abri um PR https://github.com/filipedeschamps/cep-promise/pull/192 com essa exportação. Só esperar alguém aprovar agora

lucianopf commented 3 years ago

Boa tarde galera!!

Primeiramente perdão a demora 😢

Eu confesso que entendo bem pouco de TS, mas fiquei com uma dúvida, não seria esse export da interface esse mesmo export aqui? https://github.com/filipedeschamps/cep-promise/blob/master/index.d.ts#L16

SergioVago commented 3 years ago

Fala Luciano

Tá de boa 😄

Esse export exporta só a função pra usar o buscador de cep. Com o export da interface "CEP", a gnt tem acesso à tipagem separado

lucianopf commented 3 years ago

Ahhh sim, boa galera! 🚀

bearkfear commented 3 years ago

Ahhh sim, boa galera! 🚀

Lu, exportando a “interface” nós conseguimos usar em nossas próprias funções, tipando argumentos e afins. O index.d.ts acaba exportando o modulo globalmente para que o TypeScript entenda o que é aquele pacote, mas para implementações usando a lib em escopo acaba sendo necessária uma exportação de “interface”. Comentei sobre converter a lib para TS em uma issue #169 onde eu acredito que seja o ideal atualmente, e também é uma forma de auto-documentação e auto-teste já que não precisaríamos confirmar os tipos dos dados já que eles já estão previamente estabelecidos.

hadnet commented 3 years ago

Poderia haver um type para o objeto erro, assim como há para CEP:

type CepError = {
  name: string;
  message: string;
  type: 'service_error' | 'validation_error';
  errors: {
    message: string;
    service: 'brasilapi' | 'correios' | 'viacep' | 'widenet';
  }[];
};