Import Syntax Referenz von Typoskript zu D-Grid

stimmen
1

Ich lerne Typoskript und Dojo parallel und dies hat mein begrenztes Verständnis von AMD ausgesetzt. Ich verstehe nicht, wie man die 3rd-Party „D-Grid / Grid“ AMD-Modul, meine dgrid.d.ts Stummel Erklärung und meine verzehr Klasse zusammen, um eine Import-Anweisung zu binden. Nach 2 Tagen vergebliche Mühe Ich suche nach irgendwelchen Mitteln (Hacky oder amd Best Practice) folgendes auszuführen:

MyModule.ts

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

Hier ist meine Stummel Deklarationsdatei für D-Grid.

dgrid.d.ts (edited mit Update 1 unten an sync)

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

Ich habe versucht, die folgenden Referenzen in meiner raubend Typoskript Klasse, aber Visual Studio unterstreicht den „D-Grid / Grid“ wörtlich in rot, weil ich die TS-Compiler erraten ist keine Kenntnis von der klassischen Dojo dojoConfig, baseUrl und D-Grid-Paket Erklärungen in der Datei default.htm.

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

import Grid = module(dgrid/Grid);

module MyModule
{
   ...
}

Update 1 Seit der Veröffentlichung I durch Kapitel lesen 10 in der offiziellen Typoskript Handbuch. Zuvor hatte ich nicht die Bedeutung von Modulen als Modul MyType {} oder Modul „extern / Dritter“ {} erklärt zu erkennen. Ein Umgebungs Erklärung für ein externes Modul sollte ein Literal.

Hintergrund:

Erfordern Aussage:

require([dgrid/Grid, dojo/domReady!],
    function(Grid){
Veröffentlicht am 11/10/2012 um 13:43
quelle vom benutzer
In anderen Sprachen...                            


2 antworten

stimmen
1

Die folgende (leicht verändert) Version Ihres Code kompiliert gut für mich:

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

}

Das ///<reference path='...'/>Konstrukt bringt das interne Modul dgridin Rahmen. Die Typnamen voranstellen mit dem Namen des Moduls macht die Arbeit.

Beantwortet am 11/10/2012 um 15:45
quelle vom benutzer

stimmen
0

Mein erstes allerdings wäre zu prüfen, ob die Datei in den Orten, die Sie denken, es ist für diese Aussage zu arbeiten:

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

Ist die dgrid.d.tsDatei im selben Ordner wie die Modul .ts - Datei?

Aktualisieren:

Sollten Sie Modul Erklärung sein:

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

        }
    }
}
Beantwortet am 11/10/2012 um 14:52
quelle vom benutzer

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