Typoscript module en klasse tegelijkertijd?

stemmen
4

Ik ben momenteel op zoek naar een typoscript definitie bestand voor OpenLayers bouwen.

Het probleem is dat in OpenLayers er bepaalde klassen die zou vertalen naar zowel een module en een klasse met de schrijfmachine.

Zo is er de Protocolklasse module OpenLayersen er is een klasse Responsein module OpenLayers.Protocol.

Hoe kon ik het model dat met de schrijfmachine? Kan ik Protocoleen klasse en bepalen de Responseklasse als een innerlijke klasse die wordt geëxporteerd? Hoe zou u gaan over het oplossen van dat probleem?

De vraag is gesteld op 09/10/2012 om 12:51
bron van user
In andere talen...                            


2 antwoorden

stemmen
1

Verklaren Responseals een staticgebied Protocolmet een aannemer type retourneren van een interfacedat de definieert Responseklasse:

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

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

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

Bewerk:

Of zoals Anders wijst er in deze discussie lijst vraag , kunt u meerdere constructeurs voor de binnenste klasse op deze manier:

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

Het belangrijkste nadeel van beide benaderingen is dat je een klasse niet kan ontlenen OpenLayers.Protocol.Response.

antwoordde op 14/10/2012 om 03:13
bron van user

stemmen
0

Hier is mijn bijgewerkt antwoord, dat ik hoop dat helpt - het moet krijg je op het definiëren van OpenType gestart:

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

var x = new OpenType.Protocol();
var y = new  x.Request();
var z = x.Request;
antwoordde op 09/10/2012 om 14:37
bron van user

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