Búsqueda de sitios web

javascript - ¿TypeScript soporta exportar por defecto Enum?


Tengo un objeto enum que quiero hacer exportación predeterminada a nivel superior así:

export default enum Hashes{

FOO = 'foo',
BAR = 'bar',
}

Recibí este error:

Error al analizar el módulo: Token inesperado (1:15) El archivo fue procesado con estos cargadores: [02:54] MABROUK, Sahnoun (externo - Proyecto)

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

Intenté de esta manera:

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

y parece funcionar solo si importo Hashes como alias en todos mis componentes así:

importar {Hashes} de ... ¡lo cual es un gran cambio en mi proyecto!

¿Alguna solución?

Respuesta #1

Así es como funciona ES6.

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

export default Hashes;

¿Exportarlo como const? En cuanto a la exportación por defecto, solo hay una exportación por defecto por módulo. Una exportación por defecto puede ser una función, una clase, un objeto o cualquier otra cosa. Este valor debe considerarse como el valor "principal" exportado, ya que será el más sencillo de importar.

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

Respuesta #2

export default espera una expresión/función/clase después de él, puedes leer más sobre Export en MDN

Esto no se debe a TS, esto se debe a un error en tu declaración. Puedes simplemente definir tu enum primero y luego export defaultarlo.

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

export default Hashes

Artículos relacionados