Ricerca…


introduzione

Mentre alcune librerie JavaScript esistenti hanno i file di definizione del tipo , ce ne sono molte che non lo fanno.

TypeScript offre un paio di modelli per gestire le dichiarazioni mancanti.

Dichiara un qualsiasi globale

A volte è più semplice dichiarare un globale di tipo any , specialmente in progetti semplici.

Se jQuery non ha avuto dichiarazioni di tipo ( lo fa ), potresti metterlo

declare var $: any;

Ora qualsiasi utilizzo di $ verrà digitato any .

Crea un modulo che esporta un valore predefinito

Per progetti più complicati, o nei casi in cui si intende digitare gradualmente una dipendenza, potrebbe essere più pulito creare un modulo.

Usando JQuery (anche se ha digitazioni disponibili ) come esempio:

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

E poi in qualsiasi file nel tuo progetto, puoi importare questa definizione con:

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

Dopo questa importazione, $ verrà digitato come any .

Se la libreria ha più variabili di primo livello, esporta e importa per nome:

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

   export { $ };
   export { jQuery };
}

È quindi possibile importare e utilizzare entrambi i nomi:

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

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

Utilizzare un modulo ambientale

Se si desidera solo indicare l' intento di un'importazione (quindi non si desidera dichiarare un globale) ma non si desidera disturbare con definizioni esplicite, è possibile importare un modulo ambientale.

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

È quindi possibile importare dal modulo ambientale.

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

Qualsiasi cosa importata dal modulo dichiarato (come $ e jQuery ) sopra sarà di tipo any



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow