2016-05-25 3 views
15

Ich bin wirklich verwirrt zwischen den Umgebungs- und globalen Abhängigkeiten. Ich habe das Konzept der globalen Abhängigkeiten verstanden, was bedeutet, dass die Abhängigkeiten global installiert werden. Aber zu Umgebungsabhängigkeiten zu kommen, habe ich nicht verstanden, was es ist, und jetzt Typings vor kurzem erklärt, dass ambient is now global. Ich bin völlig verloren.Globale und Ambient-Abhängigkeiten - Typisierung

Kann mir bitte jemand helfen, diese Verwirrung zu beseitigen.

Antwort

11

Zunächst einmal setzen Sie etwas wohl etwas dagegen, ambient und globale Typisierungen sind das gleiche, es ist einfach eine Namensänderung als globale besser ihre Funktion

Betreffs, was beschreibt sie sind ....

Globale Deklarationen, die die einfachste Definition verwenden, sind im globalen Namespace des Projekts verfügbare Typisierungen.

Ein "externes Modul" ist eine .d.ts-Datei mit einem Top-Level-Import oder -Export. Externe Module werden von Typings in eingehüllt. Deklarieren Sie das Modul '....' und nach einigen Abhängigkeitsmarkierungen enden Sie mit Deklarationen, die den globalen Namensraum des Projekts nicht verschmutzen.

Warum dies wichtig ist, können Konflikte mit Versionen und/oder doppelten Definitionen auftreten.

Paket A ist abhängig von der Version 1.4 der Abhängigkeit X Paket B 2.0 von Abhängigkeit X auf Version

Wenn die Definitionen von Paket A & Paket B sind beide global, dass der Versionskonflikt (unterschiedliche Definitionen der gleichen Abhängigkeit hängt) landen im globalen Namespace und der TypeScript-Compiler explodiert.

Es kommt alles darauf an, in welchem ​​Umfang Sie die Deklarationen eingeben sollen.