[英]How do I make JSHint complain about missing function parameters?
如果我有一個功能:
export function createWeeklyStats(activities, offset, length) {
...
}
我把這個函數稱為:
createWeeklyStats(myListOfActivities, 0)
JSHint並不抱怨我缺少length
參數。 我在這里找不到匹配的強制執行選項:
有人存在嗎?
我正在更新一個現有的方法,以包含一個新的必需參數,雖然我是一個自稱成年人,但如果我最好的方法是全文搜索,我會在這里投入合適的。
評論者是正確的,沒有辦法讓js [hl] int找到這個。
以下是一些選項:
檢查參數計數:
function createWeeklyStats(activities, offset, length) {
assert(arguments.length === 3);
當然,這會在運行時而不是編譯時引發錯誤。
也許你想寫一個更高階的函數來幫助你在這里:
function check_arg_count(f) {
return function() {
assert(arguments.length === f.length);
return f.apply(this, arguments);
};
}
現在,不要調用createWeeklyStats
,而是調用check_arg_count(createWeeklyStats)
。
我沒有看到這種方法有什么特別的錯誤。 處理可選參數會有點棘手。 在某些時候,您可能想要放棄使用更強類型的語言或TypeScript。
在這種情況下,您正在重構,那么如何使用重構工具? 許多編輯器/ IDE都有這樣的功能。 查看文檔。
還有其他工具可以幫助重構。 例如,看看掌握 。 實際上,掌握教程描述了一個涉及重構函數參數列表的類似案例:
$ grasp -r -e 'createWeeklyStats($a, $o)' -R 'createWeeklyStats($a, $o, 0)' })' .
這將為所有調用添加第三個參數。 更改新的第三個參數是您顯然需要照顧自己的事情。 掌握提供其他功能以縮小變更范圍。
您可以為eslint編寫自定義規則(但顯然不是jshint;請參閱此問題 )。 這可以幫助您入門: https : //gist.github.com/jareware/7179093 。 還有http://eslint.org/docs/developer-guide/working-with-rules.html 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.