【问题标题】:JSDoc - how to check types for JavaScriptJSDoc - 如何检查 JavaScript 的类型
【发布时间】:2014-04-08 18:18:44
【问题描述】:

我正在应用JSDoc注解:

/**
 * @param {number} millis
 * @param {function} callback
 * */
function sleep(millis, callback) {
    setTimeout(function() {
        callback();
    }, millis);
}

那么什么工具会告诉下面的行有错误呢?

sleep('aaa', 'sdsdsd');

JSHint 是否知道 JSDoc 类型注释?如何在 Eclipse 中启用这种支持?

【问题讨论】:

标签: javascript eclipse validation jshint jsdoc


【解决方案1】:

jshint 不知道 jsdoc cmets。但是,您可以查看使用 eslint 并为其编写一个插件,该插件将对函数调用执行类型检查。根据您的项目的设置方式,您最终可能不得不预先解析代码以将 cmets 提取到您的 eslint 规则将使用的规则文件中。

【讨论】:

  • Jason,@PaulVerest,你知道现在 2015 年有什么插件可以做到这一点吗?
【解决方案2】:

免责声明,我是tern.java的作者。

我建议你install tern.java 1.0.0-SNAPSHOT。它提供了使用 JSDoc 注释来验证 JavaScript 文件的能力。这是此问题示例的屏幕截图:

如果您需要改进 JSDoc 验证,请创建问题 here

【讨论】:

  • 嗨安吉洛,我已经做了一年了。你在SO上不认识我? :-) 等你来试试 Enide 2015 nodeclipse.org/enide/2015
【解决方案3】:

你可以看看https://github.com/yarax/typelint

它是一个 EsLint 插件,对 JSDoc cmets 进行类型检查,此外还支持它自己的扩展以使用 Redux 状态或 Swagger 模式(基本上是任何 JSON 模式)进行类型检查。

它有助于不要从头开始编写复杂的复合类型并使用现有数据。

【讨论】:

  • 看起来它只适用于架构中定义的对象属性(据我所知,它看起来不像处理 @typedef 对象)。
【解决方案4】:

现在 VsCode 可以轻松做到这一点。基于 jsDocs 激活 vscode 的类型检查有两种方式。

  1. 在您希望检查的文件顶部评论// @ts-check
  2. 要为所有文件激活它,请在项目的根目录下创建一个名为 jsconfig.json 的文件,其中包含以下内容:{ "compilerOptions": { "checkJs":true } }

现在享受类型错误!

【讨论】:

    猜你喜欢
    • 2020-03-12
    • 2022-01-03
    • 2011-05-24
    • 2011-05-29
    • 2016-11-14
    • 2013-12-27
    • 2019-08-24
    • 1970-01-01
    • 2020-04-17
    相关资源
    最近更新 更多