Che*_*tan 7 javascript object module.exports
假设我有一个 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"
]
Run Code Online (Sandbox Code Playgroud)
现在该文件作为 lib.js 保存在其中一个文件夹中。由于该文件具有导出功能,因此导出的文件可以由其他 JavaScript 文件导入。
有没有一种方法可以让我们以编程方式从 JavaScript 文件中找到导出的完整列表。
预期的输出应该是列表/数组/json等。上述js文件的输出将是
Employment
HolidayPopupContainer
withStyles
DayView
Status
Run Code Online (Sandbox Code Playgroud)
Object.keys在这里有什么帮助吗?
首先,模块中应该只有一个默认导出。如果你解决这个问题,并删除默认导出之一 - 比如说,你更改DayView为命名导出,然后使用
import * as LibNamespace from './lib.js'
Run Code Online (Sandbox Code Playgroud)
您将拥有一个(命名空间)对象,其属性是命名导出以及default默认导出的属性。对于您的代码,该对象的键将是
console.log(Object.keys(LibNamespace))
// ['Employment', 'HolidayPopupContainer', 'default', 'DayView', 'Status']
Run Code Online (Sandbox Code Playgroud)
如果您想withStyles“命名”,并包含在上面而不是 中default,则需要将其更改为命名导出:
const exportedVar = withStyles(styles)(Button);
export { exportedVar as withStyles };
Run Code Online (Sandbox Code Playgroud)
但这有点令人困惑,因为看起来您已经有一个withStyles在范围内命名的变量。也许可以将导出的变量称为其他名称:
export const buttonResult = withStyles(styles)(Button);
Run Code Online (Sandbox Code Playgroud)
(或任何你喜欢的)
| 归档时间: |
|
| 查看次数: |
6500 次 |
| 最近记录: |