2015-07-22 5 views
6

Ich habe mehrere Schnittstellen, die ich über ein ganzes strukturiertes Typescript-Projekt von CommonJS verwende. Ich möchte eine globale Datei namens "interfaces.ts" erstellen ... Anstatt die Schnittstelle zu importieren oder einen Verweis in jede .ts-Datei (Textbaustein) einzufügen, gibt es eine Möglichkeit, sie global zu deklarieren, vielleicht in der tsconfig .json Datei?So fügen Sie benutzerdefinierte TypeScript Global Interfaces hinzu

Ich bin mir bewusst, es gibt eine globale Definitionsdatei mit dem Namen lib.d.ts, die im Grunde global deklarierte Schnittstellen ist. Mir ist klar, dass ich diese Datei wahrscheinlich modifizieren kann, aber ich suchte nach einem besseren Weg (Abstraktion).

Edit: Ich sollte wahrscheinlich beachten, dass ich derzeit Visual Studio Code verwende.

Antwort

3

So funktioniert tsconfig.json standardmäßig. Erstellen Sie eine tsconfig.json im Stammverzeichnis Ihres Projekts ohne eine Eigenschaft "Dateien". Möglicherweise müssen Sie den VS-Code neu starten, damit er die tsconfig.json erkennt.

Wenn in einer tsconfig.json keine Eigenschaft "files" vorhanden ist, enthält der Compiler standardmäßig alle Dateien mit dem enthaltenen Verzeichnis und den Unterverzeichnissen. Wenn eine "files" -Eigenschaft angegeben wird, sind nur diese Dateien enthalten.

https://github.com/Microsoft/TypeScript/pull/1692

+0

Ahh ich sehe ... alles, was ich tun musste, war, den "Export" zu entfernen, wenn ich die Schnittstelle definiere und jetzt VSCode sieht es als global. Vielen Dank. – wayofthefuture

0

. Ich weiß, ich kann wohl diese Datei ändern, wurde aber für eine bessere Art und Weise (Abstraktion) suchen

Haben Sie eine Datei mit dem Namen globals.d.ts. Dieses Muster ist hier dokumentiert: http://basarat.gitbooks.io/typescript/content/docs/project/globals.html

+0

Ich lese dein Buch in den letzten 3 Tagen! Sehr beeindruckend! Ich habe auch über Ihr Typescript Collections-Projekt gelesen (scheint keine Online-Dokumente zu finden). Ist der Name 'global.d.ts' speziell für TypeScript? Gibt es einen Unterschied als die Verwendung von documents.d.ts? Danke – wayofthefuture

+0

Nein. Nichts besonderes im Namen. Nur eine Konvention – basarat

+12

Ich bemerkte, dass Sie nicht dokumentieren, wie in einer benutzerdefinierten global.d.ts-Datei acutally verdrahten. Kannst du bitte etwas ausarbeiten? – icfantv