Вопрос
Я видел большую базу кода, где каждый файл с константами выглядит примерно так:
export const DEFAULT_ID = 0;
export const CURRENT_CODE = 'ABC123';
export default {
DEFAULT_ID,
CURRENT_CODE
};
Они используют как именованные, так и экспорт по умолчанию для всех константы. Когда дело доходит до того, как константы на самом деле импортируются, кажется, что они обычно просто импортируют их как именованные экспорты:
import {CURRENT_CODE} from './whatever.consts';
Есть ли какой-либо вариант использования для этой практики? Это довольно необычно, поскольку обычно для указанной константы c используется именованный или экспорт по умолчанию, а не оба.
Исследования
Я проверил этот вопрос надеясь получить некоторое представление о том, почему можно использовать их вместе таким образом, но я не смог найти какой-либо веской причины.
Ближайший ответ, который я получил, был в этой статье, В разделе « Зачем выставлять символ как по умолчанию, так и с именованным экспортом ?», Они предоставляют краткий пример того, как это позволяет кому-то использовать import {A, B} from './a'
вместо необходимости писать что-то вроде import A, {B} from './a'
. Однако это объяснение не имеет смысла для меня, поскольку тот же синтаксис можно использовать, если константы просто экспортируются как именованные экспорты.
Мои мысли
Единственная причина, о которой я могу думать, это что этот подход может дать больше гибкости, когда дело доходит до импорта констант. То есть он позволяет использовать как
import {DEFAULT_ID, CURRENT_CODE} from './whatever.consts';
let id = DEFAULT_ID, code = CURRENT_CODE;
и
import INITIALIZATION_CONSTS from './whatever.consts';
let id = INITIALIZATION_CONSTS.DEFAULT_ID, code = INITIALIZATION_CONSTS.CURRENT_CODE
для импорта констант.
Является ли это действительной причиной для использования этого подхода? Какие-либо практические последствия?