https://github.com/Leessonomy
Местоположение
Россия, Хабаровский край

Достижения

Все достижения (2)

Наибольший вклад в теги

Все теги (26)

Лучшие ответы пользователя

Все ответы (45)
  • Ревью кода. Что можно улучшить в этом коде?

    @Sun_Day
    Честно говоря, это плохой код. Смысла разбираться в нем не имеет, долго объяснять все моменты(все это просто придется переписать под корень). Но все новички в программировании пишут что-то подобное, это нормально.

    Могут отметить несколько вещей:
    1) Нейминг css классов - почитайте про БЭМ, у вас что-то невразумительное. Да и БЭМ тут не нужен, если прям строго взглянуть - у него свои задачи.
    2) Используйте строгое равенство ===
    3) Условия внутри методов просто кошмар. В целом в методах спагетти код по работе с dom. Это так не делается. Нужно декомпозировать логику и писать лаконичный и выразительный код.
    4) Что-то можно было передать через constructor(), при создании экземпляра класса. Зачем это все пихать в сам constructor.

    На счет html, то просто попробуйте сверстать лендинг, лучше поймете что к чему.

    В общем, никуда это не выкладывайте всерьез). Ну и советую использовать тайпскрипт.

    Реакт можно изучать конечно.
    Ответ написан
  • Почему компилятор выдает ошибку?

    @Sun_Day
    [key:string]: string

    Не тоже самое, что:

    a?: string

    One принимает объект с широкой областью свойств, а Two сужает свойства до двух.


    В данном случае типобезопасность по другому работает. В команде тайпскрипт решили, что в type для объекта безопасно неявно выводить index signature(то самое [key:string]), но не для интерфейсов, т.к интерфейсы можно расширять дополнительными объявлениями, а type нет. По сути это как-то немного странно и я так и не понял до конца, чем оно мотивировано и не нашел никаких конкретных кейсов пользы такого разделения(возможно для какого-то очень абстрактного кейса, когда может случится конфуз с обращением к несуществующему ключу объекта и ts это пропустит).

    Еще с ts 2.2.2 висит в issues

    Можно просто сделать вот так
    interface myType extends MyType1

    Ну либо поменять на type вместо interface. Так бы я и сделал.
    Ответ написан
  • Почему Typescript считает аргумент функции корректным?

    @Sun_Day
    Насколько я помню, это известная проблема в тайпскрипте. Здесь нет такой точности типов на уровне дизайна языка, но то что вы ожидаете есть во Flow.
    Обсуждалось здесь:
    https://github.com/Microsoft/TypeScript/issues/12936
    Почти 5 лет, да, взгляните на количество ишьюс). Все обсуждение не читал, руки не доходят, но вроде подвижки есть.
    Ответ написан
  • Как получить id кнопки?

    @Sun_Day
    document.addEventListener("click", (e) => {
        let currentId = "";
        if (e.target.classList.value === "playing-field-item") {
            currentId = e.target.id;
        }
        console.log(currentId);
    })
    Ответ написан
  • В чем разница двух конструкций в js?

    @Sun_Day
    $(function()

    Это
    $(document).ready(function() { ... });

    Ждет пока весь HTML будет полностью загружен.

    Это IIFE

    (function($) {
    .......
    })
    (jQuery);


    Функция которая вызывается сразу при определении, т.е
    В классическом случае вам нужно сначала определить функцию, затем ее вызвать.

    function hello() {
       console.log("HELLO WORLD")
    }
    hello();


    В случае IIFE она вызывается сразу

    (function() {
         console.log("HELLO WORLD")
    })()
    Ответ написан