2017-08-14 37 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