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 в проекте