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
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:
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.
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:
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.