Definitelytyped: Was bedeuten die Versionen in definitiv typisierten Paketen?

Erstellt am 9. Dez. 2016  ·  3Kommentare  ·  Quelle: DefinitelyTyped/DefinitelyTyped

Ich denke, Versionen von definitiv typisierten Paketen sollten nicht mit der Version des echten Pakets übereinstimmen. Während ich diese Ausgabe schreibe, ist beispielsweise die neueste Version von 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`. Daher ist es verwirrend, wenn wir ein typings-Paket ändern möchten, da es keine guten Möglichkeiten gibt, das typings-Paket zu erhöhen, da es die echte Version des Pakets sein soll. Dadurch wird die Installation von npm-Paketen in vielen Projekten unterbrochen.

Ich schlage vor, Pakete zu schreiben, die nicht den genauen Versionen der echten Pakete folgen. Beispielsweise:

Lodash-Version: 4.14.43

@types/lodash-Version: 4.1.1

Aber in die .d.ts-Datei sollten wir explizit die kompatible Lodash-Paketversion schreiben.

Wir können auch @types/lodash-3 usw. für ältere Versionen von Lodash haben

Hilfreichster Kommentar

Die Richtlinie für Versionsnummern besteht darin, zu versuchen, die ersten beiden Nummern in einer Linie zu halten. @types/lodash auf 4.14.x bedeutet, dass es mit lodash 4.14 und höher funktionieren sollte. Die letzte Ziffer spiegelt Aktualisierungen der Paketstruktur wider (IE: Vielleicht hat jemand eine genauere Typdefinition für die Änderungen von 4.14 vorgenommen).

Angesichts der Tatsache, dass DT von der Community unterstützt wird, scheint eine der folgenden Aussagen zutreffen zu müssen:

  1. lodash hat nichts eingeführt, was typbezogene Änderungen erfordern würde
  2. lodash hat Änderungen eingeführt, aber niemand in der Community benötigte/wollte diese Funktionalität
  3. lodash hat Änderungen eingeführt, aber es besteht der Wunsch, die Typen mit der etwas älteren Version kompatibel zu halten

Ich würde vermuten, es ist #2.

In Bezug auf @types/lodash-3, die Art und Weise, wie Module aufgelöst werden, müssten Sie so etwas wie import * as _ from "lodash-3" ausführen, damit diese Typen aufgenommen werden.

Alle 3 Kommentare

Die Richtlinie für Versionsnummern besteht darin, zu versuchen, die ersten beiden Nummern in einer Linie zu halten. @types/lodash auf 4.14.x bedeutet, dass es mit lodash 4.14 und höher funktionieren sollte. Die letzte Ziffer spiegelt Aktualisierungen der Paketstruktur wider (IE: Vielleicht hat jemand eine genauere Typdefinition für die Änderungen von 4.14 vorgenommen).

Angesichts der Tatsache, dass DT von der Community unterstützt wird, scheint eine der folgenden Aussagen zutreffen zu müssen:

  1. lodash hat nichts eingeführt, was typbezogene Änderungen erfordern würde
  2. lodash hat Änderungen eingeführt, aber niemand in der Community benötigte/wollte diese Funktionalität
  3. lodash hat Änderungen eingeführt, aber es besteht der Wunsch, die Typen mit der etwas älteren Version kompatibel zu halten

Ich würde vermuten, es ist #2.

In Bezug auf @types/lodash-3, die Art und Weise, wie Module aufgelöst werden, müssten Sie so etwas wie import * as _ from "lodash-3" ausführen, damit diese Typen aufgenommen werden.

Vielen Dank für Ihre tolle Antwort. Diese Frage kommt mir in den Sinn, weil kürzlich ein Update für Lodash-Typisierungen meinen Code beschädigt hat (https://github.com/DefinitelyTyped/DefinitelyTyped/commit/34124e057f3f2baf4d1b0f17616a00221c04690c). Anscheinend sollten wir mehr Tests für Lodash-Typisierungen schreiben.

Zum Kontext lässt dieser andere Thread es so klingen, als ob die Richtlinie, Versionsnummern einigermaßen synchron zu halten, nur von einigen Paketen befolgt wird.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen