Invoer syntaxis verwijzing naar dgrid van schrijfmachine

stemmen
1

Ik leer typoscript en Dojo in parallel en dit heeft mijn beperkte kennis van AMD blootgesteld. Ik begrijp niet hoe ze met elkaar te verbinden een import statement naar de 3rd party dgrid / Grid AMD module, mijn dgrid.d.ts stomp verklaring en mijn consumeren klasse. Na 2 dagen van verspilde moeite Ik ben op zoek naar alle middelen (hacky of AMD best practice) om de volgende uit te voeren:

MyModule.ts

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

Hier is mijn stomp aangifte bestand voor dgrid.

dgrid.d.ts (bewerkt om te synchroniseren met Update 1 hieronder)

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

Ik probeerde de volgende referenties in mijn consumeren typoscript klasse, maar Visual Studio wordt benadrukt dat dgrid / Grid letterlijk in het rood, omdat ik denk dat de TS compiler zich niet bewust is van de klassieke Dojo dojoConfig, baseURL en dgrid pakket verklaringen in de default.htm bestand.

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

import Grid = module(dgrid/Grid);

module MyModule
{
   ...
}

UPDATE 1 Omdat het posten Ik las hoofdstuk 10 in de officiële typoscript handleiding. Eerder had ik niet de betekenis van de modules gedeclareerd als module MyType {} of module external / van derden {} herkennen. Een ambient verklaring van een externe module zou een letterlijke.

Achtergrond:

Vereisen statement:

require([dgrid/Grid, dojo/domReady!],
    function(Grid){
De vraag is gesteld op 11/10/2012 om 13:43
bron van user
In andere talen...                            


2 antwoorden

stemmen
1

De volgende (enigszins gewijzigd) versie van de code compileert prima voor mij:

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

}

Het ///<reference path='...'/>construct brengt het interne module dgridin omvang. Door aan de formulering typenaam met de naam van de module doet het werk.

antwoordde op 11/10/2012 om 15:45
bron van user

stemmen
0

Mijn eerste al zou zijn om te controleren of het bestand zich in de locaties die u denkt dat het is om deze verklaring te werken:

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

Is het dgrid.d.tsbestand in dezelfde map als de module Ts file?

Bijwerken:

Mocht u module verklaring zijn:

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

        }
    }
}
antwoordde op 11/10/2012 om 14:52
bron van user

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