Ho la seguente interfaccia:
interface SMJSPacket {
header: {
tag: string;
method: string;
type: string;
};
response?: {
status: string;
content: string;
};
event?: {
key?: string;
action?: string;
};
request?: {
run?: string;
};
}
E poi voglio per la sua attuazione come classe e le proprietà di essere impostato nel costruttore:
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);
}
}
Tuttavia, secondo il compilatore richiesta non attua l'interfaccia. Non capisco come si controllarlo, mentre si ha riempito tutto secondo l'interfaccia in fase di costruzione e, se scritto in JavaScript questo avrebbe funzionato bene, tipo controllando la stessa cosa in strumenti di chiusura anche funziona perfettamente. L'idea è che voglio implementare l'interfaccia come una classe in modo da poter disporre di metodi di utilità nel prototipo, ma ancora in grado di convertire facilmente stringa JSON.
Qualche idea?
Grazie













