Я пытаюсь создать собственный декоратор в VueJS с помощью TypeScript. Я могу вызвать метод декоратора, но проблема связана с оператором this. Когда мой декоратор вызывает метод, он не передает правильную ссылку. Вот пример кода
export default (eventKey: string) => createDecorator((options: any, key: string) => {
const playingSoccer = PlayingSoccer.getInstance();
const originalMethod = options.methods[key];
if (!options.methods || !Object.prototype.hasOwnProperty.call(options.methods, key)) {
return;
}
if (!eventKey && key) eventKey = key;
options.sockets = options.sockets || {};
options.sockets[eventKey] = (...args: any) => {
originalMethod.apply(args); // this doesn't pass correct reference
};
playingSoccer.ws.onmessage = (event: MessageEvent) => {
let { data } = event;
data = JSON.parse(data);
options.sockets[data.event](data.body);
};
});
Спасибо.