Pull to refresh
3
0
Dmitrii Glazkov @dglazkov

User

Send message

ну кажется можно объединять типы или даже интерфесы через & .

Не ожидал я увидеть такую статью в 2024))

Сомневаюсь что стоит рассматривать замыкание как баг и особенность js. Замыкание это механизм языка программирования, и его существование зависит от реализации самого языка. Замыкание есть не только в js, оно есть и в Go и в других языках и никакого "бага" в этом нет.

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

Что можно сделать интерфейсами, чего нельзя типами?

Почему не обратиться к документации и не распились на отдельные prod и dev конфиги, а общую часть вынести в common? Потом это все смержить с помощью webpack-merge . Вместо того чтобы создавать своего Франкенштейна.
Кажется что все уже давно за вас придумали, но мы же инженеры, надо свое эдакое написать. Чтобы потом люди приходили и разбирались, что тут происходит, когда на Vite решат переехать.

Если вам необходимо внести изменения в правила ESLint, вы можете внести их в Shareable config, и эти изменения автоматически применятся ко всем проектам, использующим эту конфигурацию. Это значительно упрощает управление и поддержку кодовой базы.

Правильно ли я понимаю, что для того чтобы применить изменения, надо все таки в каждом проекте ручками обновить npm пакет?

Я правильно понял из статьи что когда произошло обновление то есть после фазы commit, то workInProgressTree становится currentTree ?

В целом вы правы
Если быть более точным, то finishedWork дерево становится current: root.current = finishedWork. И выполняется эта смена на этапе commit, перед перерисовкой (но думаю это не столь важно, просто нюансы кода React).

И так постоянно на каждое обновление DOM или вызов каких то эффектов ?

Если я правильно понял, то тут ответ: нет. Так происходит постоянно на каждое обновление React в фазе commit. А обновление React может быть вызыванно изменением состояния (setState). Если вы поменяете DOM самостоятельно, без React, то и код React не будет вызван и никакого переприсвоения currentTree соответственно не будет.

Exclude<T, U>

Утилита создает тип, исключая свойства, которые уже присутствуют в двух разных типах. Он исключает из T все поля, которые можно назначить U.

В документации написано по другому

Constructs a type by excluding from UnionType all union members that are assignable to ExcludedMembers.

Речь идет именно про то, что эта утилита Exclude помогает работать с UnionType. В примведенном примере и описании к Exclude этого совсем не упоминается, и даже ноборот запутывает. Появляется вопрос, а зачем использовать Exclude, если я тоже самое могу сделать с помощью Omit: Omit<A, keyof B> .

Information

Rating
Does not participate
Location
Тбилиси, Грузия, Грузия
Date of birth
Registered
Activity

Specialization

Frontend Developer
Middle
JavaScript
TypeScript
React
Redux
Webpack
HTML
CSS
Git