显式设置函数的返回类型

时间:2016-11-11 17:22:44

标签: javascript

我最近在讨论JS代码时发现了以下注释:

/**
* Explicitly set the return type here to prevent the primitive being lost when using new
* @return {boolean}
*/
function giveMeABoolean(please) {
    ...
}

是什么给出的? JS中的返回类型?我一直在网上闲逛,找不到任何相关信息。经过一些测试后,在没有注释的情况下使用 new 时,原语确实会丢失。任何人都可以解释这个注释是如何工作的吗?

2 个答案:

答案 0 :(得分:5)

这些评论是JSDoc,这只是您可以记录代码的一种方式。像IDE这样的工具可以获取这些文档,并在您尝试理解方法的API时以良好的格式向您显示。

当他们进行静态分析以帮助您提供智能感知等提示时,某些工具也可能会包含此信息。这会给开发人员留下“" type"返回值的值在他们使用代码时保留/已知。但是,这些注释在运行时不会产生任何影响。

Here's the documentation for the @return comment.这里有一个相关的例子:&/ p>

/**
 * Returns the sum of a and b
 * @param {Number} a
 * @param {Number} b
 * @param {Boolean} retArr If set to true, the function will return an array
 * @returns {Number|Array} Sum of a and b or an array that contains a, b and the sum of a and b.
 */
function sum(a, b, retArr) {
    if (retArr) {
        return [a, b, a + b];
    }
    return a + b;
}

答案 1 :(得分:2)

我认为该代码的作者提供了用于文档目的的信息。如果您确实想提供类型信息,可以考虑typescriptflow