Importazione sintassi per riferimento dgrid da typescript

voti
1

Sto imparando dattiloscritto e Dojo in parallelo e questo ha esposto la mia comprensione limitata di AMD. Non capisco come legare insieme una dichiarazione di importazione alla 3a parte del modulo dgrid / Grid AMD, la mia dichiarazione dgrid.d.ts stub e la mia classe dei consumatori. Dopo 2 giorni di fatica sprecata Cerco qualsiasi mezzo (hacky o AMD best practice) per eseguire le seguenti operazioni:

MyModule.ts

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

Ecco il mio file di dichiarazione di stub per dgrid.

dgrid.d.ts (a cura per la sincronizzazione con Update 1 sotto)

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

Ho provato i seguenti riferimenti nella mia classe consumo dattiloscritto ma Visual Studio sottolinea la dgrid / Grid letterale in rosso, perché credo che il compilatore TS non è a conoscenza del classico Dojo dojoConfig, baseurl e le dichiarazioni package dgrid nel file default.htm.

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

import Grid = module(dgrid/Grid);

module MyModule
{
   ...
}

Update 1 Dal distacco ho letto il Capitolo 10 del manuale ufficiale dattiloscritto. In precedenza non ero riuscito a riconoscere l'importanza di moduli dichiarati come modulo MyType {} o modulo esterni / di terze parti {}. Una dichiarazione ambiente per un modulo esterno dovrebbe essere un letterale.

Sfondo:

Richiede dichiarazione:

require([dgrid/Grid, dojo/domReady!],
    function(Grid){
È pubblicato 11/10/2012 alle 13:43
fonte dall'utente
In altre lingue...                            


2 risposte

voti
1

La seguente versione (leggermente modificato) del codice compila bene per me:

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);
    }   

}

Il ///<reference path='...'/>costrutto porta l' interno del modulo dgridin ambito. Anteponendo al nome del tipo con il nome del modulo fa il lavoro.

Risposto il 11/10/2012 a 15:45
fonte dall'utente

voti
0

Il mio primo pensiero sarebbe quello di controllare che il file è nelle posizioni si pensa che è per questa dichiarazione al lavoro:

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

È il dgrid.d.tsfile nella stessa cartella del file modulo .ts?

Aggiornare:

In caso di dichiarazione del modulo essere:

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

        }
    }
}
Risposto il 11/10/2012 a 14:52
fonte dall'utente

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