Come dovrei usare @types con TypeScript 2

Finora siamo abituati a digitare tsd o (la versione migliore di esso)

Ma ora che TypeScript 2 offre la nuova funzione @types , come dovrei convertire il mio progetto corrente in lavoro con @types?

Ho tsd.json (typings.json è alcuni casi) con tutte le dipendenze, quali sono i passaggi per passare a TypeScript 2?

Quali sono le nuove migliori pratiche? @Tipes supporta versioni specifiche?

    È molto semplice. Basta installare le definizioni necessarie tramite npm.

    Ad esempio se hai bisogno di lodash puoi fare:

     npm install --save @types/lodash 

    Una volta installato, puoi utilizzarlo subito nel tuo progetto. Typescript risolverà le tipizzazioni per il pacchetto @types installato dalla cartella node_modules / @ types per impostazione predefinita. Non è più necessario un file tsd.json o typings.json .

    Punti aggiuntivi:

    • La versione principale e secondaria del pacchetto @types in npm dovrebbe corrispondere alla versione del pacchetto.
    • Puoi cercare i tipi qui: http://microsoft.github.io/TypeSearch/
    • Leggi informazioni su typeRoots e types qui . In particolare prestare attenzione a questi due punti:
      • Se typeRoots è specificato in tsconfig.json , verranno utilizzate solo le cartelle specificate per il tipo root . Ciò escluderà ./npm_modules/@types/ a meno che non lo specifichi.
      • Se i types sono specificati in tsconfig.json , verranno inclusi solo i pacchetti specificati.

    Leggi di più nel post del blog qui .

    Typescript 2.0 elimina il sistema Typings precedente.
    Ora Typescript 2.0 dovrebbe di default cercare in ./node_modules/@types e ottenere i tipi installati come moduli di nodo separati, ad esempio npm install --save @types/react (come menzionato da @David Sherret)

    C’è un bug nella versione attuale di Typescript 2.0 beta , che non carica nuovi tipi. Manualmente via cmd new tsc compila i file, ma non c’è supporto IntelliSense in VS 2015 e non viene mostrato alcun errore mentre un file .ts è in modalità di modifica.

    Per risolverlo, modifica tsconfig.json con le impostazioni simili:

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

    Per me la dichiarazione manuale "types" aiutato a risolvere questo problema, per gli altri ragazzi "typeRoots" aiutato. Spero che risparmi le ore dello sviluppatore.

    Sembra che siano tutti solo pacchetti npm, qui puoi trovare tutti quelli supportati.

    tsc preleverà qualsiasi tipo nella cartella node_modules .

    Puoi spostare le dipendenze che hai in typings.json in package.json (a condizione di cambiare anche i nomi del corso).

    Puoi leggere di più su questo qui .

    come devo convertire il mio progetto attuale in lavoro con @types

    Consiglio vivamente di tenere duro ancora un po ‘.

    ad esempio, i problemi continuano a risolversi … solo 4 ore fa: https://github.com/Microsoft/TypeScript/issues/9725#issuecomment-233469422