在不显式导出对象或命名导出的情况下从模块导入多个函数

Importing multiple functions from module without explicitly exporting object or named export

utils/mathlib.js

export function add(x, y) {
    return x + y;
}
export function subtract(x, y) {
    return x - y;
}

main.js

import add from "./../utils/mathlib"; //not working. but if I do default export like `export default function add(x, y)` it will work
import { add } from "./../utils/mathlib"; //working
import * as MathLib from "./../utils/mathlib"; //working

但我想导入具有相同标识符的模块中的所有可用函数,而不是单独导入或通过导入对象。像下面这样的东西,

import * from "./../utils/mathlib"

我应该会使用加、减功能。

这个用例背后的原因是,每当我在 MathLib.js 中添加新函数时,它应该无需修改即可使用。(我仅将 MathLib 作为示例用例,在我的实际用例中,所有函数都是每当我导入模块时都是必需的)。

您需要在默认对象中导出函数

export default {
    add(x, y) {
        return x + y;
    }
    subtract(x, y) {
        return x - y;
    }
}

如果没有显式命名 import/exports,您目前无法导入全局命名空间。它有助于防止全局命名空间污染和意外覆盖全局范围内的变量。