Import składnia odniesienie do dgrid z maszynopis

głosy
1

Uczę maszynopis i Dojo równolegle i to obnażył moje ograniczone zrozumienie AMD. Nie rozumiem, w jaki sposób powiązać ze sobą instrukcję import do 3rd party module „dgrid / Siatka” AMD, mój deklaracji dgrid.d.ts skrótowej i mojej klasy zużywającego. Po 2 dniach zmarnowanego wysiłku szukam wszelkich środków (hacky lub AMD najlepszych praktyk), aby wykonać następujące czynności:

MyModule.ts

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

Oto mój plik deklaracja stub dla dgrid.

dgrid.d.ts (edytowany zsynchronizować z Aktualizacji 1 poniżej)

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

Próbowałem następujące odniesienia w mojej klasie zużywające maszynopis ale Visual Studio podkreśla „dgrid / GRID” dosłownego na czerwono, ponieważ myślę, że kompilator TS jest nieświadomy klasycznym Dojo dojoConfig, baseURL i dgrid deklaracji pakietu w pliku default.htm.

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

import Grid = module(dgrid/Grid);

module MyModule
{
   ...
}

Aktualizacja 1 Od opublikowania Czytam poprzez rozdział 10 w oficjalnym podręczniku maszynopis. Wcześniej nie udało się rozpoznać znaczenia modułów deklarowanych jako moduł MyType {} lub modułu „zewnętrzne / thirdparty” {}. Deklaracja na otoczenia dla modułu zewnętrznego powinny być dosłowne.

Tło:

Wymagają oświadczenie:

require([dgrid/Grid, dojo/domReady!],
    function(Grid){
Utwórz 11/10/2012 o 13:43
źródło użytkownik
W innych językach...                            


2 odpowiedzi

głosy
1

Poniższy (nieco zmieniona) wersja kodu kompiluje grzywny dla mnie:

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='...'/>Konstrukcja przenosi wewnętrznego modułu dgriddo zakresu. Poprzedzając nazwę typu z nazwą modułu spełnia swoje zadanie.

Odpowiedział 11/10/2012 o 15:45
źródło użytkownik

głosy
0

Mój pierwszy chociaż byłoby sprawdzić, czy plik jest w miejscach uważasz, że jest na to stwierdzenie do pracy:

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

Jest to dgrid.d.tsplik w tym samym folderze co plik modułu .TS?

Aktualizacja:

Moduł powinien być deklaracja:

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

        }
    }
}
Odpowiedział 11/10/2012 o 14:52
źródło użytkownik

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