Recherche…


Introduction

Alors que certaines bibliothèques JavaScript existantes ont des fichiers de définition de type , beaucoup ne le font pas.

TypeScript propose quelques modèles pour gérer les déclarations manquantes.

Déclarer un tout global

Il est parfois plus simple de simplement déclarer un global de type any , en particulier dans les projets simples.

Si jQuery n’avait pas de déclaration de type ( c’est le cas ), vous pouvez mettre

declare var $: any;

Maintenant , toute utilisation de $ sera tapé any .

Faire un module qui exporte une valeur par défaut

Pour les projets plus compliqués ou dans les cas où vous avez l'intention de taper progressivement une dépendance, il peut être plus propre de créer un module.

En utilisant JQuery (bien que des typages soient disponibles ) comme exemple:

// place in jquery.d.ts
declare let $: any;
export default $;

Et puis, dans n'importe quel fichier de votre projet, vous pouvez importer cette définition avec:

// some other .ts file
import $ from "jquery";

Après cette importation, $ sera saisi comme any .

Si la bibliothèque contient plusieurs variables de niveau supérieur, exportez-les et importez-les par nom à la place:

// place in jquery.d.ts
declare module "jquery" {
   let $: any;
   let jQuery: any;

   export { $ };
   export { jQuery };
}

Vous pouvez ensuite importer et utiliser les deux noms:

// some other .ts file
import {$, jQuery} from "jquery";

$.doThing();
jQuery.doOtherThing();

Utiliser un module d'ambiance

Si vous voulez simplement indiquer l' intention d'une importation (afin de ne pas vouloir déclarer un global) mais que vous ne souhaitez pas avoir de définitions explicites, vous pouvez importer un module ambient.

// in a declarations file (like declarations.d.ts)
declare module "jquery";    // note that there are no defined exports

Vous pouvez ensuite importer depuis le module ambient.

// some other .ts file
import {$, jQuery} from "jquery";

Tout ce qui est importé du module déclaré (comme $ et jQuery ) ci-dessus sera de type any



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow