Digitazioni TypeScript nei pacchetti org npm @types


135

Ho notato che esiste un'organizzazione npm @types , che contiene pacchetti di battitura, ma non è possibile trovare alcuna documentazione su di esso. Come devono essere usati?

È pensato per essere utilizzato con lo strumento di digitazione ? In tal caso, come installarli? Ad esempio, c'è un @types/openlayerspacchetto, ma typings search npm:openlayersnon restituisce nulla.

È pensato per essere utilizzato separatamente dallo strumento di digitazione? Ad esempio installato direttamente con npm?


11
Grazie per questa domanda
Léon Pelletier,

Risposte:


109

A partire da TypeScript 2.0, le digitazioni non sono più necessarie. L'organizzazione npm è un'entità per configurare un team di sviluppatori. Credo che Microsoft abbia installato l'organizzazione @types in npm e abbia aggiunto il team di sviluppatori TypeScript all'organizzazione. I pacchetti sotto l'organizzazione @types sono pubblicati automaticamente da DefinitelyTyped utilizzando lo strumento di tipi-editore come da documenti .

Inoltre, c'è un altro modo per aggiungere typesai tuoi pacchetti:

Nel tuo package.json

Se il tuo pacchetto ha un .jsfile principale , dovrai indicare anche il file di dichiarazione principale nel tuo package.jsonfile. Impostare la typesproprietà in modo che punti al file di dichiarazione in bundle. Per esempio:

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

Si noti che il "typings"campo è sinonimo di "types"e potrebbe essere utilizzato anche.

Si noti inoltre che se il file di dichiarazione principale è denominato index.d.tse risiede nella radice del pacchetto (accanto a index.js) non è necessario contrassegnare la "types"proprietà, sebbene sia consigliabile farlo.

Per quanto riguarda i tipi di ricerca

Per la maggior parte, i pacchetti di dichiarazioni di tipo devono sempre avere lo stesso nome del nome del pacchetto su npm, ma con il prefisso @ types /, ma se necessario, è possibile controllare https://aka.ms/types per trovare il pacchetto per la tua biblioteca preferita.

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

Ma quando l'ho fatto npm search @types/openlayers, non ho ottenuto alcun risultato. Ma fare la ricerca dall'interfaccia web mi ha restituito i risultati. Quindi suppongo npm searchche non cerchi tra le organizzazioni.


Bella risposta! Le modifiche minori sarebbero carine, ma questo fa un lavoro molto migliore nel spiegare lo stato attuale.
Ronald Zarīts,

Dal momento che si specifica un singolo file nel vostro package.jsonsotto la typesproprietà, ho notato che si sta parlando di file di dichiarazione in bundle . Quale sarebbe il modo più semplice per raggiungere questo obiettivo in un sistema di compilazione automatizzato come gulp?
Nicky,

Devo aggiungere il "main"campo se il principale si chiama index.js?
Knu,

1
Mille grazie per questo "Nota che il "typings"campo è sinonimo di "types", e potrebbe anche essere usato"
Serhii Popov,

42

L'annuncio sul blog TypeScript risponde a questo: Il futuro dei file di dichiarazione

Sommario:

L' @typesorganizzazione npm serve per ottenere definizioni di tipo con npm. L'uso di queste definizioni di tipo è una caratteristica di TypeScript 2.0.

Ciò sostituirà gli attuali progetti / strumenti come digitazioni e tsd , anche se questi continueranno a essere supportati per qualche tempo.


1
Ehi Ron, quindi sto cercando di ottenere queste impostazioni, ma non sembra che VSCode stia realizzando che le ho installate. Dopo aver usato qualcosa come core-jsw / npm i @types/core-js --save, posso vedere che è nella cartella, ma il progetto genera ancora errori per cose. C'è qualcos'altro che dovrei fare? Devo lasciare che tsconfig sia a conoscenza di @types o qualcosa del genere? Come ha detto Sean, non esiste ancora alcuna documentazione per i tipi :(
Mark Pieszak - Trilon.io

@MarkPieszak devi essere sicuro che VSCode stia usando TS2.0. Scopri come installare TypeScript localmente e utilizzarlo in VSCode qui: github.com/Microsoft/TypeScript/wiki/Nightly-drops
nino.porcino

Sì, era così @ nino.porcino grazie :) tsdkdovevo essere indirizzato a un'installazione 2.0beta di TS
Mark Pieszak - Trilon.io

almeno per alcuni progetti di team che stiamo aggiornando (e anche in altri progetti GH che abbiamo visto) si dovrebbe anche aggiornare tsconfig.jsoncon a"types" proprietà array che elenca quei nomi di modulo, ad esempio"types": ["core-js"]
superjos

7

Questa sarà una funzionalità implementata in Typescript 2.0. Ciò fornisce supporto per i tipi di moduli / librerie UMD e le rispettive definizioni.

Vedere ( Supporto integrato per le definizioni dei moduli UMD ) per comprendere meglio i problemi attualmente associati alle tipizzazioni ambientali.


Grazie! Questo è utile, ma non vedo il problema di GitHub che discute dell'organizzazione @types npm. L'organizzazione @types è specifica per lo /// <referencescenario UMD ? Il compilatore TypeScript cercherà automaticamente i tipi in node_modules/@types(come cerca i moduli in node_modulesquando 'moduleResolution': 'node')? Cosa significa questo: typingsgestisce anche le dipendenze ambientali. È correlato in qualche modo?
Ronald Zarīts,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.