繁体   English   中英

如何让JSHint抱怨缺少函数参数?

[英]How do I make JSHint complain about missing function parameters?

如果我有一个功能:

export function createWeeklyStats(activities, offset, length) {
    ...        
}

我把这个函数称为:

createWeeklyStats(myListOfActivities, 0)

JSHint并不抱怨我缺少length参数。 我在这里找不到匹配的强制执行选项:

JSHint选项参考

有人存在吗?

我正在更新一个现有的方法,以包含一个新的必需参数,虽然我是一个自称成年人,但如果我最好的方法是全文搜索,我会在这里投入合适的。

评论者是正确的,没有办法让js [hl] int找到这个。

以下是一些选项:

明确检查arg计数

检查参数计数:

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)' })' .

这将为所有调用添加第三个参数。 更改新的第三个参数是您显然需要照顾自己的事情。 掌握提供其他功能以缩小变更范围。

自定义linter

您可以为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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM