Sök…


Introduktion

Medan vissa befintliga JavaScript-bibliotek har typdefinitionsfiler , finns det många som inte gör det.

TypeScript erbjuder ett par mönster för att hantera saknade deklarationer.

Förklara en global

Det är ibland lättast att bara förklara en global av vilken typ som any , särskilt i enkla projekt.

Om jQuery inte hade typdeklarationer ( det gör det ), kan du sätta

declare var $: any;

Nu kommer varje användning av $ att skrivas any .

Gör en modul som exporterar en standard som helst

För mer komplicerade projekt, eller i fall där du tänker gradvis skriva ett beroende, kan det vara renare att skapa en modul.

Använda JQuery (även om det har typtyper tillgängliga ) som exempel:

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

Och sedan i alla filer i ditt projekt kan du importera denna definition med:

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

Efter denna import kommer $ att skrivas som any .

Om biblioteket har flera toppnivåvariabler, exportera och importera med namn istället:

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

   export { $ };
   export { jQuery };
}

Du kan sedan importera och använda båda namnen:

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

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

Använd en omgivningsmodul

Om du bara vill ange avsikten med en import (så att du inte vill förklara en global) men inte vill bry dig med några uttryckliga definitioner kan du importera en omgivningsmodul.

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

Du kan sedan importera från den omgivande modulen.

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

Allt som importeras från den deklarerade modulen (som $ och jQuery ) ovan kommer att vara av vilken typ som any



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow