【问题标题】:ES6 - How to import and alias a named export's member?ES6 - 如何导入和别名命名导出的成员?
【发布时间】:2022-01-14 12:05:16
【问题描述】:

假设我有一个导出 User 类型的包:

export const User: {
  name: string;
};

我想在我的代码中使用别名为usernamename 属性。在普通的 JavaScript 中,我可以做这样的事情:

const { User: { name: username } } = require('user.js');

/* do something with `username` ... */

我想将我正在使用的文件转换为 TypeScript,因此我将使用 ES6 模块导入。如何使用import 而不是require 实现与上述相同的效果?

【问题讨论】:

    标签: javascript typescript ecmascript-6


    【解决方案1】:

    您不能在静态 import 语句中使用 destructure 对象,但可以使用 as 关键字重命名它们:

    import {User as USER} from './user.js';
    

    如果您可以使用 dynamic 导入,您可以解构:

    const {User: {name: username}} = await import('./user.js');
    

    您可以在我分享的链接中了解静态和动态导入方法的优缺点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-23
      • 1970-01-01
      • 2016-08-02
      • 2016-04-07
      • 2019-04-07
      • 1970-01-01
      • 2020-01-03
      相关资源
      最近更新 更多