gpt4 book ai didi

javascript - es6 - 导入所有没有别名的命名模块

转载 作者:行者123 更新时间:2023-11-28 03:24:20 26 4
gpt4 key购买 nike

我知道我们可以导入所有带有别名的命名模块,如下所示,

import * as name from "module-name";

引用号:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import

实际上,我已经在 A.js 中重新导出了我的模块,并且在 B.js 中继承了相同的模块。全氟FB。现在,它是两级继承,因此导入命名模块并不是什么大问题。但是,当我将其提升到 5 级继承(A -> B -> C -> D -> E)时,我需要导入所有文件中的所有命名模块,并且需要执行(重新)导出相同的操作在所有。而不是这样做,

  • 是否有其他方法可以将所有命名模块的范围复制到所有级别,而无需重复操作(导入和导出)
  • 这种设计的背后是为了让它们遵循 Opps 概念并避免重复声明相同的模块。

A.js

import React from 'react';
import I18n from 'i18n-js';
import m1 from 'module1';
import m2 from 'module2';

export default class A extends React.Component {}

export {React, I18n, m1, m2)

B.js

import BaseComponent from './A';
import {React, I18n, m1, m2) from './A;

export default class B extends A {}

有没有办法导入所有没有别名的命名模块,例如 import {*} from './A' (而不是 B.js 中的第二个)

最佳答案

JavaScript 解决方案:

import * as exports from 'foo';
Object.entries(exports).forEach(([name, exported]) => window[name] = exported);

注意:导入的包装器对象保留在那里。

<小时/>

Node.js 解决方案:

Object.entries(require('foo')).forEach(([name, exported]) => global[name] = exported);

关于javascript - es6 - 导入所有没有别名的命名模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58795137/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com