es6模块:以aName的形式导入特定函数



我想从另一个模块导入特定的函数。但是我遇到了命名冲突:我的导入文件中有相似的函数名。我想这样做:

// exporterFile.js
export {
set,
get,
has,
foo,
bar,
}
// implementation code for set, get, etc.
// importerFile.js
import {get, set} as exporter from "exporterFile.js"
function get() {
// some code and call set from exporter
exporter.set(something)
}

我知道我可以import * as exporter from "exporterFile.js",但是它缺乏可读性,并且没有显示我从导出文件中使用的方法(函数)。

也,我知道我可以import {get as exporterGet, set as exporterSet} from "exporterFile.js",但它不是那么可读。

是否有一种优雅、清晰、可读的方式从模块中导入选定的函数,而不会出现命名冲突?如果没有,最好的实践和方法是什么?建议:可读性非常重要,摇树也要考虑。

除了前面提到的两种方法之外,没有其他选择。可读性是主观的,但exporterGet()exporter.get()都是常见的好选择。如果您显式地想要列出import语句本身中使用的所有函数,则必须为它们提供单独的别名。摇树工具将能够处理这两种格式。

最新更新