2017-08-14 38 views
1

使用ESLint和Airbnb样式指南如何在模块中有效地编写导出函数而不会被打断?以下:Node.js高效地导出非匿名函数(因此Eslint停止抱怨)

exports.istest = function() { 
    console.log('Test'); 
}; 

抛出eslint '意外匿名函数' 的警告,同时:

exports.istest = function istest() { 
    console.log('Test'); 
}; 

似乎远远重复。

+0

相关:[为什么Airbnb风格指南表示不鼓励依赖函数名称推断?](https://stackoverflow.com/questions/37288950/why-does-the-airbnb-style-guide-say-那依赖于函数名称的推理是d) – jfriend00

回答

2

它是重复性的,但这是事情:当您说function foo() {}时,您声明一个名称为foo的函数。当您说var foo = function() {}(或exports.foo = ...)时,您声明了一个匿名函数,然后将其指定为foo变量的值。

这是一个微妙的差异,但它可能很重要。当您命名该函数时,您的调试器能够在调试窗格中为您正确标注该函数,但是如果声明了匿名函数,则只会看到。这在调试时会很痛苦,所以通过在轻松的时候(当您命名它时)稍加重复的努力,您可以在以后调试时节省头痛。

但是你可以再次调试没有函数名称,所以如果这不是你关心的问题,你可以直接禁用该规则(在你的.eslintrc或者内部添加注释)。

+0

清除。简洁。谢谢! – Trees4theForest