クラスを定義する を返し、コンストラクター型の のフィールドResponse
として宣言します。static
Protocol
interface
Response
declare module OpenLayers {
export interface IProtocolResponse {
foo(): void;
}
export class Protocol {
static Response: new () => IProtocolResponse;
}
}
var response = new OpenLayers.Protocol.Response();
response.foo();
編集:
または、このディスカッション リストの質問で Anders が指摘しているように、この方法で内部クラスに複数のコンストラクターを使用できます。
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();
両方のアプローチの主な欠点は、 からクラスを派生できないことですOpenLayers.Protocol.Response
。