módulo de mecanografiado y la clase a la vez?

votos
4

Actualmente estoy tratando de construir un archivo de definición de mecanografiado OpenLayers.

El problema es que en OpenLayers hay ciertas clases que se traduciría en un módulo y una clase a máquina de escribir.

Por ejemplo, existe la Protocolclase en el módulo OpenLayersy hay una clase Responseen el módulo OpenLayers.Protocol.

¿Cómo podría modelar que a máquina de escribir? ¿Puedo hacer Protocoluna clase y definir la Responseclase como una clase interna que se exporta? ¿Cómo haría usted para resolver ese problema?

Publicado el 09/10/2012 a las 12:51
fuente por usuario
En otros idiomas...                            


2 respuestas

votos
1

Declarar Responsecomo un staticcampo de Protocolcon un tipo de constructor, devolver un interfaceque define la Responseclase:

declare module OpenLayers {
    export interface IProtocolResponse {
        foo(): void;
    }

    export class Protocol {
        static Response: new () => IProtocolResponse;
    }
}

var response = new OpenLayers.Protocol.Response();
response.foo();

Editar:

O como señala Anders en esta pregunta lista de discusión , puede tener varios constructores de la clase interior de esta manera:

declare module OpenLayers {
    export interface IProtocolResponse {
        foo(): void;
    }

    export class Protocol {
        static Response: {
            new (): IProtocolResponse;
            new (string): IProtocolResponse;
        };
    }
}

var response = new OpenLayers.Protocol.Response('bar');
response.foo();

El principal inconveniente de ambos enfoques es que no se puede derivar una clase de OpenLayers.Protocol.Response.

Respondida el 14/10/2012 a las 03:13
fuente por usuario

votos
0

Aquí está mi respuesta actualizada, que espero ayuda - debe empezar en la definición de OpenType:

declare module OpenType {
   export class Protocol {
       constructor();
       Request;
   }
}

var x = new OpenType.Protocol();
var y = new  x.Request();
var z = x.Request;
Respondida el 09/10/2012 a las 14:37
fuente por usuario

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