Default Exports in JavaScript Modules Are Terrible

Created on 5 сентября 2022 г..

Ещё одна статья, в которой рассказывается, почему не стоит использовать export default.

В кратце:

  • Автокомплит не подсказывает, что у модуля есть export default, если вы начали делать импорт через { }
  • То, что экспортируется через export default может быть импортировано под любым именем. Это создает сразу несколько проблем: возможность криво назвать, то что импортируется; возможность назвать по-разному одну и ту же сущность в разных файлах; возможность неконсистентного именования при импортах из пакетов

Если вам нужен аргумент против использования export default в своих проектах - посмотрите эту статью.

В целом у export default есть боле мене адекватные места для применения. Например, библиотеки. import React from 'react' - это как раз случай, когда export default не делает хуже. Хотя и с именоваными экспортами было бы нормально.

Лично я предпочитаю забанить export default в проектах на уровне линтера. Отсутствие адекватного автокомплита и возможность накосячить с именованием слишком сильно бьют по DX в проекте

By using this site, you agree that you have read and understand its Privacy Policy.