Definitelytyped: Qual é o significado das versões em pacotes definitivamente digitados

Criado em 9 dez. 2016  ·  3Comentários  ·  Fonte: DefinitelyTyped/DefinitelyTyped

Acho que as versões de pacotes definitivamente tipados não devem corresponder à versão do pacote real. Por exemplo, no momento em que estou escrevendo esta edição, a versão mais recente de lodash é '4.17.2 and the latest version of @types/lodash is 4.14.43 . This probably means that the typings are for lodash -v4.14.43`. Portanto, é confuso quando queremos alterar um pacote de tipagens porque não há boas maneiras de incrementar o pacote de tipagens porque ele deve ser a versão real do pacote. Isso interromperá a instalação de pacotes npm em muitos dos projetos.

Sugiro que os pacotes de digitação não sigam as versões exatas dos pacotes reais. Por exemplo:

versão do lodash: 4.14.43

Versão @types/lodash: 4.1.1

Mas no arquivo .d.ts devemos escrever explicitamente a versão compatível do pacote lodash.

Também podemos ter @types/lodash-3 etc para uma versão mais antiga do lodash

Comentários muito úteis

A política para números de versão é tentar manter os dois primeiros números alinhados. @types/lodash estar em 4.14.x significa que deve funcionar com lodash 4.14 e superior. O último dígito reflete as atualizações na estrutura do pacote (IE: talvez alguém tenha feito uma definição de tipo mais precisa para as alterações do 4.14).

Dado que o DT é suportado pela comunidade, parece que um dos seguintes deve ser verdadeiro:

  1. lodash não introduziu nada que exigisse alterações relacionadas ao tipo
  2. O lodash introduziu mudanças, mas ninguém na comunidade precisava/queria essa funcionalidade
  3. O lodash introduziu mudanças, mas há um desejo de manter os tipos compatíveis com a versão um pouco mais antiga

Eu acho que é o número 2.

Quanto a @types/lodash-3, a maneira como os módulos são resolvidos, você precisaria executar algo como import * as _ from "lodash-3" para que esses tipos fossem escolhidos.

Todos 3 comentários

A política para números de versão é tentar manter os dois primeiros números alinhados. @types/lodash estar em 4.14.x significa que deve funcionar com lodash 4.14 e superior. O último dígito reflete as atualizações na estrutura do pacote (IE: talvez alguém tenha feito uma definição de tipo mais precisa para as alterações do 4.14).

Dado que o DT é suportado pela comunidade, parece que um dos seguintes deve ser verdadeiro:

  1. lodash não introduziu nada que exigisse alterações relacionadas ao tipo
  2. O lodash introduziu mudanças, mas ninguém na comunidade precisava/queria essa funcionalidade
  3. O lodash introduziu mudanças, mas há um desejo de manter os tipos compatíveis com a versão um pouco mais antiga

Eu acho que é o número 2.

Quanto a @types/lodash-3, a maneira como os módulos são resolvidos, você precisaria executar algo como import * as _ from "lodash-3" para que esses tipos fossem escolhidos.

Obrigado pela sua grande resposta. Esta pergunta vem à minha mente porque recentemente uma atualização para as tipagens lodash quebrou meu código (https://github.com/DefinitelyTyped/DefinitelyTyped/commit/34124e057f3f2baf4d1b0f17616a00221c04690c). Aparentemente, deveríamos escrever mais testes para tipagens de lodash.

Por contexto, este outro tópico faz parecer que a política de tentar manter os números de versão um pouco sincronizados é seguida apenas por alguns pacotes.

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