Javascript 如何使用js中的一行导出所有类成员?版本>;=es6
似乎这在es5中是可能的,想象一下Nexti18下一步在其中有一些功能:Javascript 如何使用js中的一行导出所有类成员?版本>;=es6,javascript,Javascript,似乎这在es5中是可能的,想象一下Nexti18下一步在其中有一些功能: module.exports=new NextI18Next({ 其他语言:['ko'], defaultLanguage:'en', ns:[“翻译”], defaultNS:“翻译”, localePath:path.resolve(“../../public/locales”), }) /////////// 从“…”导入{appWithTranslation,…} appWithTranslation() 因此,
module.exports=new NextI18Next({
其他语言:['ko'],
defaultLanguage:'en',
ns:[“翻译”],
defaultNS:“翻译”,
localePath:path.resolve(“../../public/locales”),
})
///////////
从“…”导入{appWithTranslation,…}
appWithTranslation()
因此,您只需使用模块即可导出所有类成员
在es6中>=版本
您应该这样使用:
const i18n=new NextI18Next({
其他语言:['ko'],
defaultLanguage:'en',
ns:[“翻译”],
defaultNS:“翻译”,
localePath:path.resolve(“../../public/locales”),
})
导出默认i18n
导出常量appWithTranslation=i18n.appWithTranslation
导出常量usetransformation=i18n.usetransformation
// ...
/////////
从“…”导入{appWithTranslation,…}
appWithTranslation()
似乎无法导出es5中的所有类成员
是否有方法像es5一样导出所有类成员?静态导入:
对于静态导入,可以使用执行以下操作:
export default new NextI18Next({
otherLanguages: ['ko'],
defaultLanguage: 'en',
ns: ['translations'],
defaultNS: 'translations',
localePath: path.resolve('../../public/locales'),
})
然后像这样导入:
import myModule from "...";
const { appWithTranslation, ... } = myModule;
我认为,对于静态导入,所有导出都需要命名或默认;不能导入任何未显式导出的内容。在本例中,appWithTranslation
没有显式导出,因此我认为最好使用两行,一行导入默认对象,另一行解构赋值
另见
动态导入
在动态导入的情况下,可以使用解构分配在一行中导入:
(async function () {
const { default: { appWithTranslation } } = await import('./filename.js');
appWithTranslation();
})();
不,您必须在ES6中明确说明命名导出
在大多数情况下,如果类成员(尤其是未绑定的方法)已经是导出实例对象的一部分,则无论如何都不应该单独导出它们