2016-07-18 10 views
42

Bisher haben wir zu tsd oder (Die bessere Version davon) TypisierungenWie soll ich @types mit Typoskript 2

Aber jetzt 2 das Typoskript verwendet werden bietet die neue @types Feature, wie soll ich mein aktuelles Projekt in @types umwandeln?

Ich habe tsd.json (typings.json ist einige Fälle) mit allen Abhängigkeiten, was sind die Schritte, um den Umzug in TypeScript 2? Was sind die neuen Best Practices? Unterstützt @types bestimmte Versionen?

Danke!

Antwort

44

Es ist sehr einfach. Installieren Sie einfach die Definitionen, die Sie über npm benötigen.

Zum Beispiel, wenn Sie lodash müssen Sie tun können:

npm install --save @types/lodash 

Sobald es installiert ist Sie es sofort in Ihrem Projekt verwenden können. Typescript löst die Typings für das installierte @ types-Paket standardmäßig aus dem Ordner node_modules/@ types. Es besteht keine Notwendigkeit mehr für eine tsd.json oder typings.json Datei.

Weitere Punkte:

  • Die Haupt- und Nebenversion des @types Pakets in npm mit der Paketversion entsprechen.
  • Hier können Sie nach Typen suchen: http://microsoft.github.io/TypeSearch/
  • Lesen Sie über typeRoots and types here. Insbesondere achten Sie auf diese beiden Punkte:
    • Wenn typeRoots in tsconfig.json angegeben wird, dann nur bestimmte Ordner für den Typ Wurzeln verwendet werden. Das schließt ./npm_modules/@types/ aus, wenn Sie es nicht angeben.
    • Wenn types in tsconfig.json angegeben ist, werden nur die angegebenen Pakete eingeschlossen.

Lesen Sie mehr im Blog-Post here.

+0

Was ist mit der 'dt ~ ***' Syntax? –

+0

@Royi Ich habe diese Syntax nie für @ types-only für [typings] (https://github.com/typings/typings/blob/master/docs/tsd.md) gesehen. Ich dachte, dass Definitionen auf jeden Fall typisiert wurden (automatisch auf @types veröffentlicht) (https://github.com/DefinitelyTyped/DefinitelyTyped#faq). Haben Sie mehr Informationen dazu? –

+0

Bereits gefunden. [Hier gehts] (http://stackoverflow.com/questions/40734991/whats-the-difference-from-installing-type-definition-file-using-typings-vs-npm). –

3

Es sieht aus wie sie alle nur npm Pakete sind, können Sie alle unterstützten here finden.

tsc werden alle Typen in den node_modules Ordner abholen.

Sie können die Abhängigkeiten bewegen Sie in typings.json in package.json haben (vorausgesetzt, die Namen ändern ofcourse).

Sie können mehr darüber lesen here.

38

Typoskript 2.0 wird früherer Typisierungen System befreien.
Jetzt Typescript 2.0 sollte standardmäßig in ./node_modules/@types suchen und Typen, die Sie als separate Knotenmodule, z. npm install --save @types/react (wie von @ David Sherret erwähnt)

Es gibt einen Bug in der aktuellen Version ist Typoskript 2.0 beta, die keine neuen Typen nicht geladen. Manuell über cmd new TSC kompiliert Dateien, aber es gibt keine IntelliSense-Unterstützung in VS 2015 und keine Fehler werden angezeigt, während sich eine .ts-Datei im Bearbeitungsmodus befindet.

es tsconfig.json mit ähnlichen Einstellungen ändern zu beheben:

{ 
    "compilerOptions": { 
    // ... other config rows 
    "typeRoots": [ "node_modules/@types/" ], 
    "types": [ "jquery", "react", "react-dom", /*... your other types */ ], 
    } 
} 

Für mich Handbuch "types" Erklärung dieses Problem behoben geholfen haben, für andere Jungs "typeRoots" geholfen. Hoffentlich wird es Entwicklerstunden sparen.

+0

"typeRoots" arbeitete für mich, danke! Das Hauptproblem war, dass meine tsconfig.json-Datei in meinem Projektunterordner ist. Also habe ich hinzugefügt: '" typeRoots ": [" ../node_modules/@types/ "]' –

+0

Das obige Problem ist behoben und jetzt lädt Typoskript die neuen Typen direkt aus './Node_modules/@ types' –