Import syntaks for referanse til dgrid fra Loggfila

stemmer
1

Jeg lærer Loggfila og Dojo parallelt og dette har utsatt min begrensede forståelse av AMD. Jeg forstår ikke hvordan å knytte sammen en import uttalelse til tredje part dgrid / Grid AMD-modul, min dgrid.d.ts spire erklæring og min forbruker klasse. Etter 2 dager med bortkastet arbeid Jeg leter etter noen midler (Hacky eller amd best practice) for å utføre følgende:

MyModule.ts

{
    ...
    var myGrid = new dgrid.Grid( { /*col structure*/}, divId);
    ...
}

Her er min spire erklæring fil for dgrid.

dgrid.d.ts (redigert for å synkronisere med Update 1 nedenfor)

module dgrid/Grid
{
    export class Grid
    {
        constructor ( gridStructure: any, elementId: string);
    }
}

Jeg prøvde følgende referanser i min forbruker Loggfila klasse, men Visual Studio understreker dgrid / Grid bokstavelig i rødt fordi jeg antar at TS kompilatoren er uvitende om den klassiske Dojo dojoConfig, baseURL og dgrid pakken erklæringer i default.htm filen.

///<reference path='dgrid.d.ts' />

import Grid = module(dgrid/Grid);

module MyModule
{
   ...
}

Oppdatere en Siden legger jeg leser gjennom kapittel 10 i den offisielle Loggfila manualen. Tidligere hadde mislyktes i å innse betydningen av moduler erklært som modul MyType {} eller modul ytre / tredje persons {}. En omgivende erklæring av en ekstern modul skal være en konstant.

Bakgrunn:

Krev uttalelse:

require([dgrid/Grid, dojo/domReady!],
    function(Grid){
Publisert på 11/10/2012 klokken 12:43
kilden bruker
På andre språk...                            


2 svar

stemmer
1

Følgende (noe endret) versjon av koden kompilerer fint for meg:

MyModule.ts

///<reference path='./dgrid.d.ts' />
module MyModule {
    var gridInstance : dgrid.Grid = new dgrid.Grid("test1", "test2");
}

dgrid.d.ts

module dgrid
{
    class Grid
    {   
        constructor ( gridStructure: any, elementId: string);
    }   

}

Den ///<reference path='...'/>konstruksjon som bringer den indre modulen dgridinn i omfang. Prefixing typenavnet med navnet på modulen gjør jobben.

Svarte 11/10/2012 kl. 14:45
kilden bruker

stemmer
0

Min første skjønt ville være å sjekke at filen er på stedene du synes det er for denne uttalelsen å fungere:

///<reference path='dgrid.d.ts' />

Er dgrid.d.tsfilen i samme mappe som modul Ts fil?

Oppdater:

Skulle du modul erklæring være:

module dgrid {
    export class Grid {
        constructor ( gridStructure: any, elementId: string) {

        }
    }
}
Svarte 11/10/2012 kl. 13:52
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more