[英]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.