javascript - vad är en .d.ts-fil och varför behövs den


Jag granskar en källkod för angular-ui-router och det finns filen angular-ui-router.d.ts inne i api-mappen med följande innehåll:

declare module ng.ui {

    interface IState {
        name?: string;
        template?: string;
        templateUrl?: any; // string || () => string
        templateProvider?: any; // () => string || IPromise<string>
    }

    interface ITypedState<T> extends IState {
        data?: T;
    }

Jag har läst att denna fil är TypeScript-typdefinitioner. Vad är det? Varför behövs det?

Svar #1

Det är en deklarationsfil:

När ett TypeScript-skript kompileras finns det ett alternativ att generera en deklarationsfil (med filtillägget .d.ts) som fungerar som ett gränssnitt till komponenterna i den kompilerade JavaScripten. I processen tar kompilatorn bort alla funktions- och metodkroppar och behåller endast signaturerna för de typer som exporteras. Den resulterande deklarationsfilen kan sedan användas för att beskriva de exporterade virtuella TypeScript-typerna hos ett JavaScript-bibliotek eller en modul när en tredjepartsutvecklare använder det från TypeScript.

Konceptet med deklarationsfiler är analogt med konceptet med header-filer som finns i C/C++.

Svar #2

Här är definitionen. d.ts-filerna beskriver formen på tredjepartsbibliotek och gör att TypeScript-kompilatorn vet hur man hanterar denna tredjepartskod (tillhandahålla typinformation till kompilatorn)

Relaterade artiklar