ES6 - 如何导入和别名命名导出的成员?

Posted

技术标签:

【中文标题】ES6 - 如何导入和别名命名导出的成员?【英文标题】:ES6 - How to import and alias a named export's member? 【发布时间】: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 实现与上述相同的效果?

【问题讨论】:

【参考方案1】:

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

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

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

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

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

【讨论】:

以上是关于ES6 - 如何导入和别名命名导出的成员?的主要内容,如果未能解决你的问题,请参考以下文章

ES6模块化

ES6模块化基本语法(导入import/导出export)

export default和export的使用方式

ES6 命名导出和默认导出之间的可变差异

如何修复 Ionic 中的“没有导出的成员 'VeiwChild'”错误

React + antd TS2694:命名空间'React'没有导出成员