Sintaxa de import pentru trimitere la dgrid de la typescript

voturi
1

Sunt de învățare și mașina de scris, Dojo în paralel și acest lucru a expus înțelegerea mea limitată de AMD. Nu înțeleg cum de a lega împreună o declarație de import pentru al 3-lea partid modulul „dgrid / Grid“ AMD, declarația mea dgrid.d.ts ciot și clasa mea de baut. După 2 zile de efort irosit Caut orice mijloace (Hacky sau AMD cele mai bune practici) pentru a executa următoarele:

MyModule.ts

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

Aici este ciot meu fișier declarație pentru dgrid.

dgrid.d.ts (editat pentru sincronizarea cu Actualizare 1 de mai jos)

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

Am încercat următoarele referințe din clasa mea, dar mistuitor typescript Visual Studio subliniază „dgrid / Grid“ literal în roșu, deoarece cred că compilatorul TS este conștient de clasic Dojo dojoConfig, baseUrl și declarațiile de pachete dgrid în fișierul default.htm.

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

import Grid = module(dgrid/Grid);

module MyModule
{
   ...
}

Actualizați 1 Deoarece posta am citit capitolul 10 în manualul oficial masina de scris. Anterior , am reușit să recunoască semnificația modulelor declarate ca modul MyType {} sau modul „extern / Terță“ {}. O declarație ambiantă pentru un modul extern ar trebui să fie un literal.

Fundal:

Necesită declarație:

require([dgrid/Grid, dojo/domReady!],
    function(Grid){
Întrebat 11/10/2012 la 13:43
sursa de către utilizator
În alte limbi...                            


2 răspunsuri

voturi
1

în urma (ușor modificat) Versiunea de cod compilează bine pentru mine:

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

}

///<reference path='...'/>Construcția aduce intern modulul dgridîn domeniul de aplicare. Prefixând numele tipului cu numele modulului face treaba.

Publicat 11/10/2012 la 15:45
sursa de către utilizator

voturi
0

Prima mea deși ar fi pentru a verifica dacă fișierul se află în locațiile pe care le crezi că este pentru această afirmație să lucreze:

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

Este dgrid.d.tsfișierul în același folder ca și fișierul modulul TS?

Actualizați:

În cazul în care declarația modulului să fie:

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

        }
    }
}
Publicat 11/10/2012 la 14:52
sursa de către utilizator

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