Hay*_*yan 12 javascript warnings eslint
当我尝试创建和导出这样的箭头函数时:
export default () => {};
Run Code Online (Sandbox Code Playgroud)
我从 ESLint 收到此警告:
在导出为模块默认值之前将箭头函数分配给变量
当然,我可以将它分配给一个变量,然后导出它。但为什么我不能用其他方式来做呢?导出箭头函数而不将其分配给某些东西有什么问题?
Yil*_*maz 15
这将解决这个问题:
const Name = () => { };
export default Name
Run Code Online (Sandbox Code Playgroud)
如果您阅读 eslint 文档es-lint 文档
报告模块的默认导出是否未命名。这包括几种类型的未命名数据类型;文字、对象表达式、数组、匿名函数、箭头函数和匿名类声明。
确保默认导出被命名有助于通过鼓励在其声明站点和导入站点重复使用模块默认导出的相同标识符来提高代码库的可读取性。
grepability: grep 是一个基于模式查找事物的命令。grep 能力是使用某些编程约定,使查找信息变得更容易。
小智 14
这不是一个错误。这是一个警告。所以你可以做到。然而,这不是一个好的做法。
事情是这样的:当你说 时() => {},你正在声明一个没有名称的匿名函数。当您说var foo = function() {}您正在声明一个匿名函数时,然后将其指定为变量的值foo。
这是一个很小的差异,但如果您关心编写易于重用和调试的代码,那么它很重要。
当您命名函数时,调试器能够在调试窗格中为您正确标记它,但如果您声明匿名函数,您只会看到匿名函数。这在调试时可能会很痛苦,因此,通过在很容易的情况下(当你命名它时)进行一些重复性的努力,你可以在以后的调试时避免让自己(或其他阅读/使用你的代码的人)头痛。
如果您确定您所做的是导出匿名函数,ESLint 的文档会告诉您如何禁用错误通知:
"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
}]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17199 次 |
| 最近记录: |