Tengo la siguiente interfaz:
interface SMJSPacket {
header: {
tag: string;
method: string;
type: string;
};
response?: {
status: string;
content: string;
};
event?: {
key?: string;
action?: string;
};
request?: {
run?: string;
};
}
Y luego quiero ponerlo en práctica como clase y las propiedades de ser fijado en el 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);
}
}
Sin embargo de acuerdo a la solicitud compilador no está implementando la interfaz. No entiendo cómo se compruebe que, si bien ha llenado todo de acuerdo con la interfaz en la fase de construcción como si estuvieran escritas en JavaScript que esto funcionaría bien, la comprobación de tipos lo mismo en las herramientas de cierre también funciona a la perfección. La idea es que quiero implementar la interfaz como una clase para que pueda tener métodos de utilidad en el prototipo, pero aún así ser capaz de convertir fácilmente a cadena JSON.
¿Algunas ideas?
Gracias













