在不显式导出对象或命名导出的情况下从模块导入多个函数
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,您目前无法导入全局命名空间。它有助于防止全局命名空间污染和意外覆盖全局范围内的变量。
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,您目前无法导入全局命名空间。它有助于防止全局命名空间污染和意外覆盖全局范围内的变量。