Мой фрагмент JavaScript возвращает "недопустимые символы" - PullRequest
0 голосов
/ 26 марта 2019

Я пытаюсь получить фрагмент, соответствующий примеру, найденному в этой книге . Вот мой фрагмент Javascript: "использовать строгое"

function readObject(target, name, descriptor) {
    return console.log("reading object...: ", target, name, descriptor)
}


class Example {
  a() {}
  @readObject
  b() {}
}

const e = new Example();
e.a = 1;
e.b = 2;

Моя консоль возвращает:

строка 12 _ SyntaxError: недопустимый символ

Я также пробовал:

function readonly(target, name, descriptor) {
  descriptor.writable = false;
  return descriptor;
}


class Example {
  a() {}
  @readonly
  b() {}
}

const e = new Example();
e.a = 1;
e.b = 2;

более поздняя пробная версия тоже не удалась.

Мне кажется, я определил readObject.

Может быть, я забыл еще один элемент?

Любой намек был бы великолепен, Благодарю.

Ответы [ 2 ]

0 голосов
/ 26 марта 2019

Кажется, это был тестер транспилера, код работает лучше с использованием соответствующего транспилятора, например, в jsfiddle:

https://jsfiddle.net/wergsdba/1/

console.log("go on the link to appreciate the code using ES7")
0 голосов
/ 26 марта 2019

Полагаю, что настоящее сообщение об ошибке будет выглядеть примерно так: «Ведущие декораторы должны быть присоединены к объявлению класса».

Декоратор должен быть перед объявлением класса, а не внутри.

EDIT Вы также можете использовать декораторы на свойствах класса. Я думаю, код должен выглядеть примерно так:

class Example {
  @readObject
  a = {};
  constructor(){
    //...
  }
}
...