2016-05-31 4 views
90

Ich habe festgestellt, dass es eine npm-Organisation gibt @types, die das Schreiben von Paketen enthält, aber keine Dokumentation darüber finden kann. Wie sollen diese verwendet werden?TypeScript typings in npm @ types org packages

Soll es mit typings Werkzeug verwendet werden? Wenn ja, wie installiere ich sie? Zum Beispiel gibt es ein @types/openlayers Paket, aber typings search npm:openlayers gibt nichts zurück.

Soll es getrennt vom Typisierungswerkzeug verwendet werden? Z.B. direkt installiert mit npm?

+6

Vielen Dank für diese Frage. –

Antwort

78

Ab TypScript 2.0 ist keine mehr erforderlich. Die npm-Organisation ist eine Einheit, um ein Entwicklerteam einzurichten. Ich glaube, Microsoft hat die @types-Organisation in npm eingerichtet und der Organisation das TypeScript-Entwicklerteam hinzugefügt. Pakete unter der @types-Organisation werden automatisch von DefinitelyTyped mit dem Publisher-Tool für Typen wie unter docs veröffentlicht.

Zusätzlich zu gibt es eine andere Art und Weise types zu Ihren Paketen hinzuzufügen:

In Ihrem package.json

Wenn Ihr Paket einen Haupt .js Datei hat, müssen Sie die wichtigsten, um anzuzeigen, Deklarationsdatei in Ihrer package.json Datei. Legen Sie die Eigenschaft types so fest, dass sie auf Ihre gebündelte Deklarationsdatei verweist. Zum Beispiel:

{ 
    "name": "awesome", 
    "author": "Vandelay Industries", 
    "version": "1.0.0", 
    "main": "./lib/main.js", 
    "types": "./lib/main.d.ts" 
} 

Beachten Sie, dass das "typings" Feld mit "types" synonym, und könnte auch verwendet werden.

Beachten Sie auch, dass, wenn Ihre Haupt-Deklarationsdatei index.d.ts benannt ist und lebt an der Wurzel des Pakets (neben index.js) müssen Sie die "types" Eigenschaft nicht markiert, obwohl es ratsam ist, dies zu tun.

In Bezug auf verschiedene Sucharten

Für den größten Teil, Typdeklaration Pakete sollten immer den gleichen Namen wie dem Paketnamen auf npm haben, aber mit @ Typen/Präfix, aber wenn Sie benötigen, können Sie Schauen Sie sich https://aka.ms/types an, um das Paket für Ihre Lieblingsbibliothek zu finden.

Von - http://www.typescriptlang.org/docs/handbook/declaration-files/consumption.html

Aber als ich npm search @types/openlayers tat, habe ich keine Ergebnisse. Aber die Suche über das Webinterface hat mir die Ergebnisse zurückgegeben. Ich denke also npm search nicht über Organisationen hinweg suchen.

+0

Große Antwort! Geringfügige Änderungen wären nett, aber das erklärt den aktuellen Zustand viel besser. –

+0

Da Sie in Ihrer Datei '' package.json'' unter '' types'' eine einzelne Datei angeben, habe ich festgestellt, dass Sie von der ** deklarierten Deklarationsdatei ** sprechen. Was wäre der einfachste Weg, dies in einem automatisierten Build-System wie Schluck zu erreichen? – Nicky

6

Dies wird eine Funktion sein, die in Typescript 2.0 ausgerollt wird. Dies bietet Typunterstützung für UMD-Module/Bibliotheken und ihre jeweiligen Definitionen.

Siehe https://github.com/Microsoft/TypeScript/issues/7125#issuecomment-210182488, um ein besseres Verständnis für die Probleme zu bekommen, die derzeit bei Typensignalen auftreten.

+0

Danke! Das ist nützlich, aber ich sehe das GitHub-Problem nicht, das die @types npm -Org diskutiert. Ist die @types-Organisation speziell für UMD '///

37

Ankündigung auf dem Typoskript Blog beantwortet diese: The Future of Declaration Files

Zusammenfassung:

Die @types npm Organisation ist für mit npm Typdefinitionen zu erhalten. Unter Verwendung dieser Typdefinitionen wird ein Feature in TypeScript 2.0 bereitgestellt.

Dadurch werden die aktuellen Projekte/Tools wie typings und tsd ersetzt, obwohl diese für einige Zeit weiterhin unterstützt werden.

+1

Hey Ron, also ich versuche, diese Einstellungen zu bekommen, aber es scheint nicht wie VSCode zu realisieren, dass ich sie installiert habe. Nachdem ich etwas wie "core-js" mit "npm i @ types/core-js --save" verwendet habe, kann ich sehen, dass es im Ordner ist, aber das Projekt wirft immer noch Fehler für die Dinge auf. Gibt es noch etwas, was ich tun sollte? Muss ich tsconfig von @types oder etwas wissen lassen? Wie Sean sagte, gibt es noch nirgendwo Dokumentation für Typen :( –

+0

@MarkPieszak muss man sicher sein, dass VSCode TS2.0 verwendet. Sehen Sie, wie TypeScript lokal installiert und in VSCode hier verwendet wird: https://github.com/Microsoft/TypeScript/wiki/Nightly-drops –

+0

Yup das war es @ nino.porcino danke :) 'tsdk' musste auf eine 2.0beta Installation von TS –