Am următoarea interfață:
interface SMJSPacket {
header: {
tag: string;
method: string;
type: string;
};
response?: {
status: string;
content: string;
};
event?: {
key?: string;
action?: string;
};
request?: {
run?: string;
};
}
Și apoi vreau să-l pună în aplicare ca o clasă și proprietățile fiind stabilite în 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);
}
}
Cu toate acestea, conform cererii compilatorul nu implementează interfața. Nu înțeleg cum nu-l verifica, în timp ce a umplut totul în funcție de interfața de la faza de construcție și în cazul în scris în JavaScript acest lucru ar lucra bine, tipul de verificare același lucru în instrumente de închidere, de asemenea, funcționează perfect. Ideea este că vreau să pună în aplicare interfață ca o clasă, așa că am putea avea metode de utilitate în prototip, dar încă să fie capabil de a converti cu ușurință la un șir JSON.
Vreo idee?
Mulțumiri













