Javascript 是否存在导出与命名和默认导出相同常量的用例? 问题:
我见过一个很大的代码库,其中每个带有常量的文件都是这样的:Javascript 是否存在导出与命名和默认导出相同常量的用例? 问题:,javascript,ecmascript-6,es6-modules,Javascript,Ecmascript 6,Es6 Modules,我见过一个很大的代码库,其中每个带有常量的文件都是这样的: export const DEFAULT\u ID=0; 导出常量当前_代码='ABC123'; 导出默认值{ 默认\u ID, 当前_代码 }; 它们对所有常量使用命名导出和默认导出。当谈到如何实际导入常量时,它们似乎通常只是将其作为命名导出导入: import{CURRENT_code}from./whatever.consts'; 这种做法有任何用例吗?这是不寻常的,因为通常使用命名导出或默认导出,而不是两者都使用 研究 我检
export const DEFAULT\u ID=0;
导出常量当前_代码='ABC123';
导出默认值{
默认\u ID,
当前_代码
};
它们对所有常量使用命名导出和默认导出。当谈到如何实际导入常量时,它们似乎通常只是将其作为命名导出导入:
import{CURRENT_code}from./whatever.consts';
这种做法有任何用例吗?这是不寻常的,因为通常使用命名导出或默认导出,而不是两者都使用
研究
我检查了一下,希望能了解一下为什么人们会以这种方式将它们结合在一起,但我什么也找不到
我得到的最接近于答案的东西是在。在“为什么将符号同时公开为默认导出和命名导出?”一节中,他们提供了一个简单的示例,说明这如何允许用户使用import{a,B}from./a'
,而不需要编写类似于import a,{B}from./a'
。但是,这种解释对我来说没有意义,因为如果常量只是作为命名导出导出,则可以使用相同的语法
我的想法
我能想到的唯一原因是,在导入常量时,这种方法可以提供更大的灵活性。也就是说,它允许同时使用
import{DEFAULT_ID,CURRENT_code}from./whatever.consts';
设id=默认的\u id,代码=当前的\u代码;
及
import INITIALIZATION_CONSTS from./whatever.CONSTS';
设id=INITIALIZATION\u CONSTS.DEFAULT\u id,code=INITIALIZATION\u CONSTS.CURRENT\u code
用于导入常量
这是使用这种方法的正当理由吗?是否存在任何最佳实践影响
这种做法是否有任何用例
不是真的。我能想到的唯一一件事是向后兼容性,如果模块是其他地方使用的库,可能与它们如何传输代码有关
我能想到的唯一原因是,在导入常量时,这种方法可以提供更大的灵活性
默认的导出不是必需的。您可以轻松地将命名空间导入仅用于命名导出:
import * as INITIALIZATION_CONSTS from './whatever.consts';
let id = INITIALIZATION_CONSTS.DEFAULT_ID, code = INITIALIZATION_CONSTS.CURRENT_CODE
这种做法是否有任何用例
不是真的。我能想到的唯一一件事是向后兼容性,如果模块是其他地方使用的库,可能与它们如何传输代码有关
我能想到的唯一原因是,在导入常量时,这种方法可以提供更大的灵活性
默认的导出不是必需的。您可以轻松地将命名空间导入仅用于命名导出:
import * as INITIALIZATION_CONSTS from './whatever.consts';
let id = INITIALIZATION_CONSTS.DEFAULT_ID, code = INITIALIZATION_CONSTS.CURRENT_CODE
特别是什么代码库?你问过作者吗?特别是什么代码库?你问过作者吗?