Definitelytyped: Что означают версии в определенно типизированных пакетах

Созданный на 9 дек. 2016  ·  3Комментарии  ·  Источник: DefinitelyTyped/DefinitelyTyped

Я считаю, что версии определенно типизированных пакетов не должны совпадать с версией реального пакета. Например, на момент написания этого выпуска последняя версия 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`. Так что это сбивает с толку, когда мы хотим изменить пакет typings, потому что нет хороших способов увеличить пакет typings, потому что он должен быть реальной версией пакета. Это нарушит установку пакетов npm во многих проектах.

Я предлагаю, чтобы типизированные пакеты не соответствовали точным версиям реальных пакетов. Например:

Лодаш версия: 4.14.43

Версия @types/lodash: 4.1.1

Но в файле .d.ts мы должны явно указать совместимую версию пакета lodash.

Также у нас может быть @types/lodash-3 и т. д. для более старой версии lodash.

Самый полезный комментарий

Политика для номеров версий заключается в том, чтобы попытаться сохранить первые два числа в одной строке. @types/lodash версии 4.14.x означает, что он должен работать с lodash 4.14 и выше. Последняя цифра отражает обновления структуры пакета (IE: возможно, кто-то сделал более точное определение типа для изменений 4.14).

Учитывая, что DT поддерживается сообществом, кажется, что одно из следующего должно быть правдой:

  1. lodash не представил ничего, что потребовало бы изменений, связанных с типом
  2. lodash внес изменения, но никто в сообществе не нуждался/не хотел указанную функциональность
  3. lodash внес изменения, но есть желание сохранить типы, совместимые с немного более старой версией.

Я бы предположил, что это №2.

Что касается @types/lodash-3, способ разрешения модулей, вам нужно будет выполнить что-то вроде import * as _ from "lodash-3" для выбора указанных типов.

Все 3 Комментарий

Политика для номеров версий заключается в том, чтобы попытаться сохранить первые два числа в одной строке. @types/lodash версии 4.14.x означает, что он должен работать с lodash 4.14 и выше. Последняя цифра отражает обновления структуры пакета (IE: возможно, кто-то сделал более точное определение типа для изменений 4.14).

Учитывая, что DT поддерживается сообществом, кажется, что одно из следующего должно быть правдой:

  1. lodash не представил ничего, что потребовало бы изменений, связанных с типом
  2. lodash внес изменения, но никто в сообществе не нуждался/не хотел указанную функциональность
  3. lodash внес изменения, но есть желание сохранить типы, совместимые с немного более старой версией.

Я бы предположил, что это №2.

Что касается @types/lodash-3, способ разрешения модулей, вам нужно будет выполнить что-то вроде import * as _ from "lodash-3" для выбора указанных типов.

Спасибо за отличный ответ. Этот вопрос приходит мне в голову, потому что недавно обновление типизации lodash сломало мой код (https://github.com/DefinitelyTyped/DefinitelyTyped/commit/34124e057f3f2baf4d1b0f17616a00221c04690c). Видимо, нам нужно написать больше тестов для типизации lodash.

Для контекста этот другой поток звучит так, как будто политика попытки синхронизировать номера версий соблюдается только некоторыми пакетами.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги