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:
- Używam Dojo 1.8.0 odwołanie od ajax.googleapis.com
- Dgrid JavaScript jest obsługiwany lokalnie w / js / dgrid
- Staram się uważnie śledzić stronę samouczka dgrid SitePen pokazując klasyczny AMD require () ładowanie dgrid http://dojofoundation.org/packages/dgrid/tutorials/hello_dgrid http://dojofoundation.org/packages/dgrid/tutorials/hello_dgrid /demo/simple.html
Wymagają oświadczenie:
require([dgrid/Grid, dojo/domReady!],
function(Grid){













