TypeScript 支持导出默认枚举吗?

sah*_*oun 8 javascript export typescript ecmascript-6 angular

我有一个枚举对象,我想将其导出默认设置为顶层,如下所示:

export default enum Hashes{

FOO = 'foo',
BAR = 'bar',
}
Run Code Online (Sandbox Code Playgroud)

我收到这个错误:

模块解析失败:意外的标记 (1:15) 文件已使用这些加载器进行处理:[02:54] MABROUK、Sahnoun(外部 - 项目)

  • ./node_modules/@angular-devkit/build-angular/src/babel/webpack-loader.js
  • ./node_modules/@ngtools/webpack/src/ivy/index.js

我试过这样:

export enum Hashes{
    
    FOO = 'foo',
    BAR = 'bar',
    }
Run Code Online (Sandbox Code Playgroud)

只有当我在所有组件中将哈希作为别名导入时,它似乎才有效:

import {Hashes} from ... 这是我的项目中的一个巨大变化!

有什么解决办法吗?

Joo*_*rts 13

这就是 ES6 的工作原理。

enum Hashes {
  FOO = 'foo',
  BAR = 'bar',
}

export default Hashes;
Run Code Online (Sandbox Code Playgroud)

将其导出为常量?关于默认导出,每个模块只有一个默认导出。默认导出可以是函数、类、对象或其他任何内容。该值被视为“主要”导出值,因为它将是最简单的导入值。

export const enum Hashes {
  FOO = 'foo',
  BAR = 'bar',
}
Run Code Online (Sandbox Code Playgroud)