2016-07-18 226 views
42

Finora siamo abituati a TSD o (La versione migliore di esso) tipizzazioniCome devo usare @types con dattiloscritto 2

Ma ora che dattiloscritto 2 offre la nuova funzione @types, come devo convertire il mio attuale progetto 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 migliori pratiche ? @types supporta versioni specifiche?

Grazie!

risposta

44

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

Per esempio, se avete bisogno lodash si può fare:

npm install --save @types/lodash 

Una volta installato è possibile utilizzare subito nel progetto. Typescript risolverà le tipizzazioni per il pacchetto @types installato dalla cartella node_modules/@ types per impostazione predefinita. Non c'è più bisogno di un file tsd.json o typings.json.

punti supplementari:

  • La versione principale e secondaria del pacchetto @types in NPM dovrebbe corrispondere con la versione del pacchetto.
  • È possibile cercare i tipi qui: http://microsoft.github.io/TypeSearch/
  • Leggi typeRoots and types here. In particolare prestare attenzione a questi due punti:
    • Se typeRoots è specificato in tsconfig.json, quindi solo le cartelle specificate saranno utilizzati per le radici di tipo. Questo escluderà ./npm_modules/@types/ a meno che non lo specifichi.
    • Se types è specificato in tsconfig.json, verranno inclusi solo i pacchetti specificati.

Leggi tutto nel post del blog here.

+0

E la sintassi 'dt ~ ***'? –

+0

@Royi Non ho mai visto la sintassi per @ types-only per [typings] (https://github.com/typings/typings/blob/master/docs/tsd.md). Ho pensato che le definizioni su sicuramente digitate fossero [pubblicate automaticamente su @types] (https://github.com/DefinitelyTyped/DefinitelyTyped#faq). Avete più informazioni su questo? –

+0

Già trovato. [Qui vai] (http://stackoverflow.com/questions/40734991/whats-the-difference-from-installing-type-definition-files-using-typings-vs-npm). –

3

Sembra che siano tutti solo pacchetti di npm, è possibile trovare tutti quelli supportati here.

TSC prenderà qualsiasi tipo nei node_modules cartella.

È possibile spostare le dipendenze che avete in typings.json in package.json (a patto di modificare i nomi troppo naturalmente).

Ulteriori informazioni su questo here.

38

tipografico 2.0 si libera delle precedenti Tipizzazioni sistema.
Ora Il dattiloscritto 2.0 dovrebbe di default esaminare ./node_modules/@types e ottenere i tipi installati come moduli di nodo separati, ad es. npm install --save @types/react (come citato da @ David Sherret)

C'è un bug nella versione corrente tipografico 2.0 beta, che non caricare 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 modificare tsconfig.json con le impostazioni simili:

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

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

+0

"typeRoots" ha funzionato per me, grazie! Il problema di root era che il mio file tsconfig.json si trova nella sottocartella dei miei progetti. Così ho aggiunto: '" typeRoots ": [" ../node_modules/@types/ "]' –

+0

Il problema sopra riportato è fisso e ora dattiloscritto carica i nuovi tipi direttamente da './Node_modules/@ types' –