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
