Syntaxe d'importation pour référence à dgrid du tapuscrit

voix
1

J'apprends tapuscrit et Dojo en parallèle et cela a exposé ma compréhension limitée de la DMLA. Je ne comprends pas comment lier ensemble une déclaration d'importation à la 3ème partie « dgrid / Grille » Module AMD, ma dgrid.d.ts déclaration de souche et ma classe consommatrice. Après 2 jours de gaspillage d'efforts que je cherche tous les moyens (ou hacky les meilleures pratiques amd) pour exécuter les éléments suivants:

MyModule.ts

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

Voici mon dossier de déclaration de stub pour dgrid.

dgrid.d.ts (édité pour la synchronisation avec une mise à jour ci - dessous)

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

J'ai essayé les références suivantes dans ma classe consommatrice dactylographiée mais Visual Studio souligne la « dgrid / Grille » littérale en rouge parce que je suppose que le compilateur TS ne connaît pas le Dojo classique dojoConfig, les déclarations de paquet baseUrl et dgrid dans le fichier default.htm.

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

import Grid = module(dgrid/Grid);

module MyModule
{
   ...
}

Mise à jour 1 Depuis l' affichage j'ai lu le chapitre 10 dans le manuel dactylographiée officiel. Auparavant , je l' avais pas reconnu l'importance des modules déclarés en tant que module MyType {} ou module « externe / thirdparty » {}. Une déclaration ambiante pour un module externe doit être un littéral.

Contexte:

Require:

require([dgrid/Grid, dojo/domReady!],
    function(Grid){
Créé 11/10/2012 à 13:43
source utilisateur
Dans d'autres langues...                            


2 réponses

voix
1

La version suivante (légèrement modifiée) de votre code compile bien pour moi:

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

}

La ///<reference path='...'/>construction apporte l' intérieur le module dgriddans la portée. Préfixant le nom du type avec le nom du module fait le travail.

Créé 11/10/2012 à 15:45
source utilisateur

voix
0

Ma première se serait de vérifier que le fichier est dans les endroits que vous pensez qu'il est pour cette déclaration au travail:

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

Le dgrid.d.tsfichier dans le même dossier que le fichier de votre module?

Mettre à jour:

Si vous déclaration le module soit:

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

        }
    }
}
Créé 11/10/2012 à 14:52
source utilisateur

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