Ik heb de volgende interface:
interface SMJSPacket {
header: {
tag: string;
method: string;
type: string;
};
response?: {
status: string;
content: string;
};
event?: {
key?: string;
action?: string;
};
request?: {
run?: string;
};
}
En dan wil ik het uit te voeren als een klasse en de eigenschappen wordt ingesteld in de constructor:
class Request implements SMJSPacket {
constructor(data: any, method: string) {
this.header = {
type: 'request',
method: method || 'calld',
tag: Request.getTag()
}
this.request = data;
}
static getTag(): string {
return '_' + goog.now() + '_' + utils.getRandomBetween(1, 1000);
}
}
Maar volgens de compiler Request niet implementeren van de interface. Ik begrijp niet hoe werkt het controleren, terwijl het alles heeft ingevuld op basis van de interface aan de bouwfase en als geschreven in JavaScript zou dit werken prima, typecontrole hetzelfde in Sluiting gereedschap werkt ook perfect. Het idee is dat ik wil de interface als een klasse uit te voeren, dus ik nut methoden in het prototype kan hebben, maar nog steeds in staat om gemakkelijk te converteren naar JSON string.
Iemand een idee?
Bedankt













