• Как динамически добавить метод в класс, внутри этого же класса?

    @ned4ded
    В чистом js все работает отлично и красиво) Вот переписываю на TS и не могу добавить метод

    Еще бы, но если кто-то будет пытаться вникнуть в твоей код после тебя, то вряд ли поймет, как это работает

    Во первых, неявное объявление метода - это плохо и это противоречит статической типизации.

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

    В третьих, у тебя нарушается SRP принцип, в данном случае лучше использовать композицию.

    В связи с чем я предлагаю тебе переделать класс DomListener, чтобы он принимал только root при инициализации, и имел метод on(eventName, eventHandler), в этом методе DomListner будет регистрировать на $root функцию eventHandler. В SliderComponent ты можешь реализовать механизм создания переменной domListener (а не наследования от DomListener).

    В Scale ты будешь делать тоже самое, что и сейчас, но только явно:
    export class Scale extends SliderComponent {
        static className = 'slider__scale'
        constructor($root, values) {
            super(emitter, $root, values);
            
            this.domListener.on('click', this.Onclick)
        }
    
        Onclick() {}
    }


    Btw, в js названия методов принято начинать с маленькой буквы

    Конечно, это можно сделать в компоненте, без проблем, но хотелось бы оставить так.

    Ты вряд ли сможешь обойти на ts это ограничение, можешь добавить комментарий @ts-expect-error, перед той строкой, где ошибка выпадает, но это полумера.
    Написано
  • Как динамически добавить метод в класс, внутри этого же класса?

    @ned4ded
    this[method] = this[method].bind(this)
    Если будет передана строка с названием метода, которого на текущем классе нет, то твой код упадет с ошибкой

    ты делаешь что-то нерпавильно, скинь полный пример кода с наследованеим и тп
    Написано
  • Как динамически добавить метод в класс, внутри этого же класса?

    @ned4ded
    initDOMListeners() {
        this.listeners.forEach(list => {
          const method = capitalize(list)
          this[method] =  this[method].bind(this)
          // ^^^^^^^^^^^^^^^^^^^^^^^^  
          // что ты пытаешься сделать здесь? 
          // Забиндить существующий на этом классе метод на этот же класс? Зачем?
    
          this.$root.on(list, this[method])
        })
      }


    А в целом ошибка выпадает верная, неизвестно же, какие именно строки будут в массиве listeners, неизвестно, какие имеено значения будут возвращены из capitalize, вот он и показывает тебе ошибку типизации. Статическая же типизация
    Написано
  • Можно ли как-то расставить для всех ошибок линтера игнорирование warning и errors?

    @ned4ded
    Иван, "завтра"

    можно отключить определенные правила через .eslintrc, можно игнорить специфичные файлы через .eslintignore, можно в каждую отдельную папку добавлять свой .eslintrc и отключать в нем правила для специфичной папки

    кстати, это все написано в документации на сайте eslint
    Написано
  • Можно ли отдельно заказать вёрстку?

    @ned4ded
    Если ты можешь адекватно оценить качество верстки - это может немного сбить цену у студии, которая в последствии сможет такой версткой воспользоваться. Но, во первых, верстка занимает небольшой процент в объеме разработки сайта, если это не лендинг. Во вторых, в конторе могут не принять такую верстку к работе (даже качественную), ибо подходы и технологии в ее создании могут отличаться и быть несовместимыми с оными в конторе.

    Вывод из этого такой, что если планируется пользоваться услугами студии в любом случае, то лучше и верстку заказывать у них же, в большинстве случаев это не сыграет особой роли.
    Написано
  • Как установить stylus-loader?

    @ned4ded
    ну и я не вижу в нем stylus-loader, значит он не установлен в проекте, ты его точно установил в этот проект?

    я понимаю, что ты его мог не сохранить в package.json, но проверь папку node_modules, если в ней нет stylus-loader, значит он не установлен в проекте
    Написано
  • Как установить stylus-loader?

    @ned4ded
    Максим, весь package.json; под кат в вопросе желательно
    Написано
  • Как установить stylus-loader?

    @ned4ded
    Максим, без дополнительной информации сложно что-то сказать. Нужен package.json как минимум.

    какая версия vuesax установлена? как производилась установка?
    Написано
  • Как установить stylus-loader?

    @ned4ded
    ну, попробуй npm i -S stylus-loader (:
    Написано
  • Как масштабировать сайт под маленькие устройства?

    @ned4ded
    Антон Литвиненко, если я не ошибаюсь, то initial-scale ставит зум равный размеру экрана, тогда как при ширине 320 размер документа будет шире размера экрана, убери это свойство и оставть device-width

    <meta name="viewport" content="width=device-width">
    Написано
  • Переход с React на Angular, стоит ли?

    @ned4ded
    Владислав Лысков, реакт отлично работает с тс (:
    Написано
  • Как подключить сторонний polyfill (classlist-polyfill) в Babel?

    @ned4ded
    MisterTw1ster, не за что. Отметь ответом, если не сложно
    Написано
  • Как подключить сторонний polyfill (classlist-polyfill) в Babel?

    @ned4ded
    MisterTw1ster, первый вариант (достаточно прямолинейный) - скопировать исходник этого проекта руками в начало файла, второй вариант - подключить исходник classlist-polyfill как отдельный js-файл перед файлом script.js в штмл документе
    Написано
  • Как правильно вливать ветки в master?

    @ned4ded
    Добавлю, что чаще всего пуш в мастер запротекчен и влить в нее без мр вряд ли получится.
    Написано
  • Чем отличаются примитивные типы от литеральных?

    @ned4ded
    Антон M, да, что-то вроде подтипа, наследника (но лучше так и называть их литеральными типами, чтобы не смешивать понятия).
    Написано
  • Во всех ли технологиях разработки требования к аналитическому мышлению одинаковы?

    @ned4ded
    Евгений Прутковский, эстетический вкус вполне определяется вовлеченностью в определенную сферу и опытом. Т.е. если вам нравится подбирать цвета, формы, интересно изучать интерфейс других приложений, тогда да, вкус вполне можно развить с опытом. Чем больше вы просмотрите и самостоятельно оцените чужих работ, тем более тонкий вкус сможете развить.

    Говоря это, стоит понимать, что определенные люди более восприимчивы к визуальным образам, что дает им определенное преимущество.

    "чувство прекрасного ... обязано быть и фронтенд-разработчика" - далеко не обязательно, на фронте есть задачи, которые не требуют от разработчика каких-то обширных познаний из области проектирования интерфейсов и желания в этом разбираться. Более того, разработка самого интерфейса в spa-приложениях - это процентов 20 от работы над функционалом.
    Написано
  • Во всех ли технологиях разработки требования к аналитическому мышлению одинаковы?

    @ned4ded
    Евгений Прутковский, мне больше нравится возиться с интерфейсом и делать разные классные, удобные штуки. Я работал и с беком, и достаточно хорошо понимаю принципы работы приложений, просто не тянет.

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

    Более того, работая параллельно аналитиком, могу сказать, что далеко не всегда аналитическое мышление присуще разработчикам, но что позволит хорошо разбираться в коде, в ит-технологиях в целом - это сильно развитое абстрактное мышление.
    Написано
  • Как синхронно передать переменную в cleanup useEffect?

    @ned4ded
    у вас сейчас выводится
    q first 
    q second 
    qq first


    а вам надо
    q first 
    qq second 
    qq first

    ?
    Написано