当我尝试创建和导出这样的箭头函数时:
export default () => {};
我从 ESLint 得到这个警告:Assign arrow function to a variable before exporting as module default
当然我可以将它分配给一个变量然后导出它。但是为什么我不能用其他方式呢?
导出箭头函数而不将其分配给某物有什么问题?
最佳答案
这不是错误。这是一个警告。所以你可以做到。但是,这不是好的做法。
事情是这样的:当你说 () => {}
,您正在声明一个没有名称的匿名函数。当你说 var foo = function() {}
您正在声明一个匿名函数,然后将其作为值分配给 foo
多变的。
这是一个很小的区别,但如果您关心编写易于重用和调试的代码,这很重要。
当你给函数命名您的调试器能够在调试 Pane 中为您正确标记它,但如果您声明一个匿名函数,您只会看到匿名函数。这在调试时可能会很痛苦,因此通过在容易的情况下(当您命名时)进行一些重复的工作,您可能会在以后调试时为自己(或其他阅读/使用您的代码的人)省去麻烦。
如果你确定你所做的是导出匿名函数,ESLint 的文档会告诉你 how to disable the error notification :
"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
}]
关于javascript - ESLint 警告 - 在导出为模块默认值之前将箭头函数分配给变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68783347/