Cuando intento crear y exportar una función de flecha como esta:
export default () => {};Recibo esta advertencia de ESLint:
Asigne la función de flecha a una variable antes de exportar como módulo predeterminado
Por supuesto, puedo asignarlo a una variable y luego exportarlo. Pero, ¿por qué no puedo hacerlo de otra manera? ¿Qué tiene de malo exportar una función de flecha sin asignarla a algo?
No es un error. Es una Advertencia. Así que PUEDES hacerlo. Sin embargo, no es una buena práctica.
Aquí está la cosa: cuando dices () => {} , estás declarando una función anónima sin nombre. Cuando dices var foo = function() {} estás declarando una función anónima y luego asignándola como valor a la variable foo .
Es una pequeña diferencia, pero es importante si le interesa escribir código que sea fácil de reutilizar y depurar.
Cuando nombra la función, su depurador puede etiquetarla correctamente en el panel de depuración, pero si declara una función anónima, solo verá la función anónima. Esto puede ser un dolor de cabeza durante la depuración, por lo que al hacer un poco de esfuerzo repetitivo cuando es fácil (cuando lo nombra) puede ahorrarse (o a otras personas que pueden leer/usar su código) un dolor de cabeza más adelante al depurar.
Si está seguro de que lo que hace es exportar funciones anónimas, los documentos de ESLint le indican cómo deshabilitar la notificación de error :
"import/no-anonymous-default-export": ["error", { "allowArray": false, "allowArrowFunction": false, "allowAnonymousClass": false, "allowAnonymousFunction": false, "allowCallExpression": true, // The true value here is for backward compatibility "allowLiteral": false, "allowObject": false }]esto resolverá el problema:
const name = () => { }; export default nameSi lees documentos de eslint documentos de es-lint
Informa si la exportación predeterminada de un módulo no tiene nombre. Esto incluye varios tipos de tipos de datos sin nombre; literales, expresiones de objetos, matrices, funciones anónimas, funciones de flecha y declaraciones de clases anónimas.
Asegurarse de que se nombren las exportaciones predeterminadas ayuda a mejorar la grepabilidad del código base al alentar la reutilización del mismo identificador para la exportación predeterminada del módulo en su sitio de declaración y en sus sitios de importación.
grepability: grep es un comando para encontrar cosas, basado en patrones. grep-ability sería el uso de ciertas convenciones de programación que facilitan la búsqueda de información.
En lugar de: exportar por defecto () => {... };
Usa esto: función const = () => { ... }; función predeterminada de exportación;