TypeScript
Een JavaScript-bibliotheek gebruiken zonder een typedefinitiebestand
Zoeken…
Invoering
Terwijl sommige bestaande JavaScript-bibliotheken hebben typedefinitie bestanden , zijn er veel die dat niet doen.
TypeScript biedt een paar patronen om ontbrekende aangiften te verwerken.
Verklaar een globale
Soms is het makkelijkst om gewoon verklaren een globale van het type any
, met name in eenvoudige projecten.
Als jQuery geen typeaangiften had ( wel ), zou je kunnen zeggen
declare var $: any;
Nu het gebruik van $ zal worden getypt any
.
Maak een module die standaard exporteert
Voor meer gecompliceerde projecten, of in gevallen waarin u geleidelijk een afhankelijkheid wilt typen, kan het schoner zijn om een module te maken.
JQuery gebruiken (hoewel er wel typingen beschikbaar zijn ) als voorbeeld:
// place in jquery.d.ts
declare let $: any;
export default $;
En vervolgens in elk bestand in uw project, kunt u deze definitie importeren met:
// some other .ts file
import $ from "jquery";
Na deze import wordt $
als any
getypt.
Als de bibliotheek meerdere variabelen op het hoogste niveau heeft, exporteert en importeert u in plaats daarvan op naam:
// place in jquery.d.ts
declare module "jquery" {
let $: any;
let jQuery: any;
export { $ };
export { jQuery };
}
U kunt vervolgens beide namen importeren en gebruiken:
// some other .ts file
import {$, jQuery} from "jquery";
$.doThing();
jQuery.doOtherThing();
Gebruik een omgevingsmodule
Als u alleen de intentie van een import wilt aangeven (dus u wilt geen globaal declareren) maar geen expliciete definities wilt gebruiken, kunt u een omgevingsmodule importeren.
// in a declarations file (like declarations.d.ts)
declare module "jquery"; // note that there are no defined exports
U kunt vervolgens importeren vanuit de omgevingsmodule.
// some other .ts file
import {$, jQuery} from "jquery";
Alles wat wordt geïmporteerd uit de gedeclareerde module (zoals $
en jQuery
) hierboven is van het type any