ES6 - 有没有一种优雅的方法来导入所有命名导出而不是默认导出?

2024-05-02

我正在寻找一种优雅的方法来导入所有命名导出,而不必导入默认导出。

在一个文件中,我导出许多命名常量以及默认值:

// myModule.js
const myDefault = 'my default' 
export const named1 = 'named1' 
export const named2 = 'named2'
// many more named exports - otherwise this would not be an issue...
export default myDefault 

在另一个文件中,我希望有一种优雅的方式来导入所有命名导出only,无需导入默认值:

// anotherFile.js
// this is what I would like to do, but syntax is not supported, right?
import { * as namedOnly } from './myModule'

I do not想要:

// anotherFile.js
import myDefault, * as namedOnly from './myModule' 

因为我不需要默认的anotherFile.js我的 linting 工具让我烦恼 已定义但未使用myDefault。我也不想:

// anotherFile.js
import {
  named1,
  named2,
  ... // many more
} from './myModule'

因为打字太多了。我也做not想要object.omit默认值:

// anotherFile.js
import omit from 'object.omit'
import * as all from './myModule'
const namedOnly = omit(all, 'default')

谢谢你的帮助!


“命名”和“默认”导出之间没有区别。默认导出是命名导出,它只是恰好有名称default这是为了便于某些语法的使用而进行特殊处理的。

导入所有导出密钥的唯一方法是

import * as foo from "foo";

这将包括指定的导出default如果有的话。如果您希望将其从检查中排除,则由您按照自己的逻辑处理,就像您对您的检查所做的那样omit()例子。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ES6 - 有没有一种优雅的方法来导入所有命名导出而不是默认导出? 的相关文章

随机推荐