• Метапрограммирование в JavaScript
    0
    Спасибо за замечание, поправил опечатку. Также дополнил абзац про Symbol.species для большей ясности как его можно использовать.
  • Метапрограммирование в JavaScript
    0
    Спасибо, внёс уточнения в статью.
  • Метапрограммирование в JavaScript
    0
    Спасибо, поправил
  • Как мы общаемся с React-компонентами при помощи декораторов в TypeScript
    0
    Модификатора доступа нет, без @rw оно не будет доступным для чтения и для записи?

    Согласен, не очень понятно получилось. Суть его использования в том, что в коде декоратора @rw имеется такой кусочек кода:

    Object.defineProperty(target, propertyKey.toString(), {
        value: undefined,
        configurable: true,
        enumerable: true,
        writable: true
    });
    


    С его помощью, мы принудительно объявляем свойства (на которых применён декоратор @rw) со значением undefined когда создаём экземпляр класса параметров.
    Это всё нужно из-за того, что TypeScript вырезает свойства без заданных значений и мы теряем автодополнение в каком-нибудь Chrome DevTools.

    image

    Во-вторых, можно использовать такой декоратор «чтение и запись» для явного переопределения свойств с декоратором «только для чтения» в подклассах.

    Read only поле в ES6 и typescript вообще можно сделать убрав сеттер и оставив только геттер. Да и зачем вам дескрипторы, если есть поддержка get и set?

    Можно, но мы решили, что конечным разработчикам будет проще и короче использовать декораторы для всех таких штук, оставив класс с параметрами максимально простым.
    Плюс декораторами можно удобнее решать и другие проблемы, пряча в них шаблонный повторяющийся код (например, при использования декоратора apiEvent, предыдущая установленная функция-обработчик сама отписывается, но разработчику достаточно использовать этот декоратор и не думать о тонкостях реализации механизма событий).