Pesquisa de site

O DefinitelyTyped é apropriado para novas definições de TypeScript?


De acordo com https://blogs.msdn.microsoft.com/typescript/2016/06/15/the-future-of-declaration-files/:

DefinitelyTyped ainda será o lugar para criar novos arquivos de declaração.

Mas não está claro por que criaríamos novas definições no DefinitelyTyped em vez de enviá-las diretamente para o NPM.

Sendo que o DT é tão grande agora, parece contraproducente continuar adicionando a esse repositório. Quais são as vantagens do DT em relação a publicar diretamente no NPM?

Resposta #1

O repositório DefinitelyTyped está sendo tratado como o repositório comunitário aprovado de declarações de tipo para pacotes que não fornecem as suas próprias.

Responder a esta pergunta depende do que você quer dizer quando diz

enviando-os diretamente para o NPM.

Se você quer dizer incluir o arquivo .d.ts com o pacote ao qual o arquivo .d.ts corresponde, isso é encorajado. O pacote moment, por exemplo, inclui e mantém seu próprio arquivo de declaração.

Se você quer dizer fornecer apenas seu próprio pacote de tipos, então o DefinitelyTyped é o local mais indicado para esses arquivos e oferecerá algumas vantagens. Ao incluir seu arquivo no DefinitelyTyped, ele irá

  • beneficiar-se de implantações automatizadas no namespace @types pelo bot de tipagens TS.

    • o que também resultará em uma resolução de módulo previsível no compilador.
  • esteja na fonte estabelecida há muito tempo para digitações. Você estará onde as pessoas estão procurando.
  • ser mais facilmente mantido por outros.

    • o pacote será mais fácil de encontrar
    • os mantenedores usarão um fluxo de trabalho e um formato com os quais estão familiarizados

Resposta #2

Para complementar a resposta de Paarth, estar no DefinitelyTyped oferece benefícios extras que você deve considerar:

  • Etiquetas de versão automáticas para versões antigas da linguagem TypeScript. Se você distribuir seu arquivo de definição em seu próprio pacote, então você e seus consumidores precisam concordar sobre qual versão do TypeScript usar. Se estiver no DefinitelyTyped, à medida que você atualiza o arquivo de definição, o publicador @types marcará automaticamente a versão mais recente compatível para versões antigas do TS (por exemplo, pessoas usando TS 2.1 podem npm install @types/[email para obter uma versão compatível com 2.1)
  • Manutenção gratuita pelos mantenedores do DefinitelyTyped. Frequentemente, o DT pode encontrar erros em arquivos de definição escrevendo novas regras do TSLint e aplicando-as em todo o código-fonte
  • Melhor controle de versões - você pode fornecer mais facilmente definições lado a lado para várias versões da sua biblioteca e versioná-las independentemente da biblioteca subjacente

Artigos relacionados