У меня есть следующий интерфейс:
interface SMJSPacket {
header: {
tag: string;
method: string;
type: string;
};
response?: {
status: string;
content: string;
};
event?: {
key?: string;
action?: string;
};
request?: {
run?: string;
};
}
И тогда я хочу, чтобы реализовать его как класс и свойства создаются в конструкторе:
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);
}
}
Однако в соответствии с запросом компилятор не реализует интерфейс. Я не понимаю, как это проверить его, в то время как он все заполнены в соответствии с интерфейсом на этапе строительства, и если написано в JavaScript, это будет работать отлично, тип проверки то же самое в Closure инструментов также отлично работает. Идея заключается в том, что я хочу, чтобы реализовать интерфейс как класс, так что я могу иметь вспомогательные методы в прототипе, но все еще быть в состоянии легко преобразовать в JSON строку.
Есть идеи?
благодаря













