la sintaxis de importación de referencia a partir del texto mecanografiado dgrid

votos
1

Estoy aprendiendo mecanografiado y Dojo en paralelo y esto ha expuesto mi limitada comprensión de AMD. No entiendo cómo atar juntos una declaración de importación a la tercera parte del módulo dgrid / Grid AMD, mi declaración dgrid.d.ts talón y mi clase consumidora. Después de 2 días de esfuerzo desperdiciado Busco cualquier medio (hacky o mejores prácticas AMD) para ejecutar el siguiente:

MyModule.ts

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

Aquí está mi expediente de declaración de código auxiliar para dgrid.

dgrid.d.ts (editado para sincronizar con Update 1 a continuación)

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

Probé las siguientes referencias en mi clase consumidora mecanografiado, pero Visual Studio subraya la dgrid / Grid literal en rojo porque supongo que el compilador TS no es consciente del clásico Dojo dojoConfig, baseUrl y las declaraciones del paquete dgrid en el archivo default.htm.

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

import Grid = module(dgrid/Grid);

module MyModule
{
   ...
}

Actualizar 1 Desde la publicación leí hasta el capítulo 10 en el manual oficial mecanografiado. Anteriormente ya había fallado en reconocer la importancia de los módulos declarados como MyType módulo {} o módulo externa / thirdparty {}. Una declaración ambiental para un módulo externo debe ser un literal.

Fondo:

declaración requerirá:

require([dgrid/Grid, dojo/domReady!],
    function(Grid){
Publicado el 11/10/2012 a las 13:43
fuente por usuario
En otros idiomas...                            


2 respuestas

votos
1

El (ligeramente modificado) siguiente versión de su código compila bien para mí:

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

}

El ///<reference path='...'/>constructo ocasiona interna módulo dgriden alcance. Anteponiendo el nombre del tipo con el nombre del módulo hace el trabajo.

Respondida el 11/10/2012 a las 15:45
fuente por usuario

votos
0

Mi primera aunque sería comprobar que el archivo está en los lugares que usted piensa que es para esta declaración para trabajar:

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

Es el dgrid.d.tsarchivo en la misma carpeta que el archivo de su módulo de Ts?

Actualizar:

En caso de que la declaración módulo de ser:

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

        }
    }
}
Respondida el 11/10/2012 a las 14:52
fuente por usuario

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