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.
ser mais facilmente mantido por outros.
- o pacote será mais fácil de encontrar
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
@typesmarcará automaticamente a versão mais recente compatível para versões antigas do TS (por exemplo, pessoas usando TS 2.1 podemnpm install @types/[emailpara 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