Node.js 有效地导出非匿名函数(所以 eslint 停止抱怨)
Node.js efficiently export non-anonymous functions (so eslint stops complaining)
将 ESLint 与 Airbnb 风格指南结合使用 我如何在模块中高效地编写导出函数而不被打脸?以下:
exports.istest = function() {
console.log('Test');
};
抛出 eslint 'unexpected unnamed function' 警告同时:
exports.istest = function istest() {
console.log('Test');
};
似乎重复得很糟糕。
它是重复的,但事情是这样的:当您说 function foo() {}
时,您是在声明一个名称为 foo
的函数。当您说 var foo = function() {}
(或 exports.foo = ...
)时,您正在声明一个匿名函数,然后将其作为值分配给 foo
变量。
这是一个细微的差别,但很重要。当您命名该函数时,您的调试器能够在调试窗格中为您正确标记它,但如果您声明一个匿名函数,您只会看到 anonymous function
。这在调试时可能会很痛苦,因此通过在容易的时候(当你命名它时)进行一些重复性的努力,你可能会在以后调试时避免头疼。
但是你当然可以在没有函数名称的情况下进行调试,所以如果这不是你关心的问题,你可以简单地禁用规则(在你的 .eslintrc
中或内联注释)。
将 ESLint 与 Airbnb 风格指南结合使用 我如何在模块中高效地编写导出函数而不被打脸?以下:
exports.istest = function() {
console.log('Test');
};
抛出 eslint 'unexpected unnamed function' 警告同时:
exports.istest = function istest() {
console.log('Test');
};
似乎重复得很糟糕。
它是重复的,但事情是这样的:当您说 function foo() {}
时,您是在声明一个名称为 foo
的函数。当您说 var foo = function() {}
(或 exports.foo = ...
)时,您正在声明一个匿名函数,然后将其作为值分配给 foo
变量。
这是一个细微的差别,但很重要。当您命名该函数时,您的调试器能够在调试窗格中为您正确标记它,但如果您声明一个匿名函数,您只会看到 anonymous function
。这在调试时可能会很痛苦,因此通过在容易的时候(当你命名它时)进行一些重复性的努力,你可能会在以后调试时避免头疼。
但是你当然可以在没有函数名称的情况下进行调试,所以如果这不是你关心的问题,你可以简单地禁用规则(在你的 .eslintrc
中或内联注释)。