有没有办法从JavaScript文件中获取所有导出的名称?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了有没有办法从JavaScript文件中获取所有导出的名称?相关的知识,希望对你有一定的参考价值。
假设我有一个javascript文件(lib.js),该文件可以导出一些类,函数等。
export class Employment
id = "";
startDate = "";
endDate = "";
companyEmailAddress = "";
;
export function HolidayPopupContainer()
return (<div id="#HolidayPopupContainer" />);
export default withStyles(styles)(Button);
export default class DayView extends React.Component
constructor(props)
super(props);
this.state =
readOnly: false
;
export const Status = [
"Select Status",
"Pending",
"Approved",
"Rejected",
"All"
]
现在,此文件另存为lib.js在其中一个文件夹中。由于此文件已导出,因此导出的文件可以由其他JavaScript文件导入。
有一种方法可以通过编程方式从JavaScript文件中找到导出的完整列表。
预期输出应为列表/数组/ json等。上述js文件的输出为
Employment
HolidayPopupContainer
withStyles
DayView
Status
Object.keys对您有帮助吗?
根据文档-https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/export,每个模块只能有一个default export
。
除了上述解决方案之外,您还可以使用动态导入来获取导出的名称。
// some.js
export const name = "someName";
export class Employment
id = "";
startDate = "";
endDate = "";
companyEmailAddress = "";
;
export function HolidayPopupContainer()
return "HolidayPopupContainer";
export default class DayView
constructor()
export const Status = [
"Select Status",
"Pending",
"Approved",
"Rejected",
"All"
]
// index.js
const exportedVar = [];
import('./some.js')
.then(module =>
const default: defaultExport, ...rest = module;
exportedVar.push(defaultExport.name, ...Object.keys(rest));
console.log(exportedVar);
);
请参阅-https://stackblitz.com/edit/js-yndmc6
首先,模块中应该只有one个默认导出。如果您修复了该问题,并删除了默认导出之一,例如,将DayView
更改为命名导出,然后使用[]
import * as LibNamespace from './lib.js'
您将有一个(命名空间)对象,其属性为命名的导出,再加上默认导出的
default
属性。对于您的代码,此对象的键将是
console.log(Object.keys(LibNamespace)) // ['Employment', 'HolidayPopupContainer', 'default', 'DayView', 'Status']
如果您想将
withStyles
命名为“ named”,而不是将其包含在上面,而不是default
,则需要将其更改为命名出口:
const exportedVar = withStyles(styles)(Button); export exportedVar as withStyles ;
但是有点令人困惑,因为看起来您的作用域中已经有一个名为
withStyles
的变量。也许将导出的变量称为其他名称:
export const buttonResult = withStyles(styles)(Button);
(或您喜欢的任何东西)
以上是关于有没有办法从JavaScript文件中获取所有导出的名称?的主要内容,如果未能解决你的问题,请参考以下文章
从对象 id 中提取日期并将其导出到 mongodb 中的 csv