Je l'interface suivante:
interface SMJSPacket {
header: {
tag: string;
method: string;
type: string;
};
response?: {
status: string;
content: string;
};
event?: {
key?: string;
action?: string;
};
request?: {
run?: string;
};
}
Et puis je veux la mettre en œuvre en tant que classe et les propriétés étant mis dans le constructeur:
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);
}
}
Toutefois, selon la demande du compilateur n'implémente l'interface. Je ne comprends pas comment il le vérifier, alors qu'il a tout rempli en fonction de l'interface à la phase de construction et si elle était écrite en JavaScript cela fonctionne très bien, le type de vérification de la même chose dans les outils de fermeture fonctionne également parfaitement. L'idée est que je veux implémenter l'interface en tant que classe pour que je puisse avoir des méthodes d'utilité dans le prototype, mais toujours en mesure de convertir facilement à chaîne JSON.
Des idées?
Merci













