web-dev-qa-db-fra.com

Typings TypeScript dans les packages org npm @types

J'ai remarqué qu'il existe une organisation npm @ types , qui contient des packages de dactylographie, mais ne trouve aucune documentation à ce sujet. Comment sont-ils censés être utilisés?

Est-il censé être utilisé avec typings tool? Si oui, comment les installer? Par exemple, il existe un package @types/openlayers , mais _typings search npm:openlayers_ ne renvoie rien.

Est-il censé être utilisé séparément de l'outil de frappe? Par exemple. installé directement avec npm?

127
Ronald Zarīts

A partir de TypeScript 2.0, les typings ne sont plus nécessaires. L'organisation npm est une entité permettant de configurer une équipe de développeurs. Je crois que Microsoft a configuré l’organisation @types dans npm et a ajouté l’équipe de développement TypeScript à l’organisation. Les packages situés sous l'organisation @types sont publiés automatiquement à partir de DefinitelyTyped à l'aide de l'outil types-publisher, conformément à docs .

De plus, il existe un autre moyen d'ajouter types à vos paquets:

Dans votre package.json

Si votre paquet contient un fichier principal .js, vous devez également indiquer le fichier de déclaration principal dans votre fichier package.json. Définissez la propriété types pour qu'elle pointe vers votre fichier de déclaration fourni. Par exemple:

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

Notez que le champ "typings" est synonyme de "types" et peut également être utilisé.

Notez également que si votre fichier de déclaration principal s'appelle index.d.ts et réside à la racine du paquet (à côté de index.js), il n'est pas nécessaire de marquer la propriété "types", bien que cela soit recommandé. faire cela.

Concernant les types de recherche

Dans la plupart des cas, les packages de déclaration de type doivent toujours porter le même nom que le nom de package sous npm, mais avec le préfixe @ types /, mais si vous en avez besoin, vous pouvez procéder à une extraction https://aka.ms/types pour trouver le paquet pour votre bibliothèque préférée.

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

Mais quand j'ai fait npm search @types/openlayers, je n'ai obtenu aucun résultat. Mais la recherche à partir de l'interface Web m'a renvoyé les résultats. Donc, je suppose que npm search ne recherche pas parmi les organisations.

L'annonce sur le blog TypeScript répond à ceci: L'avenir des fichiers de déclaration

Sommaire:

L'organisation @types npm permet d'obtenir des définitions de type avec npm. L'utilisation de ces définitions de type est une fonctionnalité à venir dans TypeScript 2.0.

Cela remplacera les projets/outils actuels tels que typings et tsd , même s'ils resteront pris en charge pendant un certain temps.

42
Ronald Zarīts

Cela va être une fonctionnalité qui est déployée dans TypeScript 2.0. Ceci fournit un support de type pour les modules/bibliothèques UMD et leurs définitions respectives.

Voir ( Prise en charge intégrée des définitions de module UMD ) pour mieux comprendre les problèmes liés aux typages ambiants.

7
Sean Larkin