0

所以我有一个辅助命名空间,我在开发 JS 时存储有用的添加。现在我计划更好地记录它们并使用 JsDoc 和 Google Closure 编译器的帮助来增强我的 JS。我得到了截至今天下午 2 点的最新版本。但是,在以下代码上运行编译器时出现错误:

var my.company.tool = {
    "isNumber": function( p_value )
    {
            return ( typeof(p_value) == "number" ) ? true : false;
    },
    /**
    * @static
    * @returns {Boolean} Indicative of an object.
    */
    "isObject": function( p_value )
    {
            return ( typeof(p_value) == "object" ) ? true : false;
    }
}

所以在两条返回线上我得到编译器错误“错误 - 不一致的返回类型”

如何在 Google 闭包编译器中使用像这样的三元运算符?是的,我用谷歌搜索过,但我总是得到不相关的搜索结果。现在我将删除三元,但它更愿意在没有错误的情况下使用它们:

所以我按照“Tomasz Nurkiewicz”的建议更新了我的陈述,但我仍然收到错误:更改为代码:

var my.company.tool = {
    "isNumber": function( p_value )
    {
            return typeof(p_value) == "number";
    },
    /**
    * @static
    * @returns {Boolean} Indicative of an object.
    */
    "isObject": function( p_value )
    {
            return typeof(p_value) == "object";
    }
}

编译器输出:

[pakeException]
    js/core/IHR.js:68: ERROR - inconsistent return type
    found   : boolean
    required: (Boolean|null)
            return typeof( p_value ) == "number";
                                     ^

    js/core/IHR.js:76: ERROR - inconsistent return type
    found   : boolean
    required: (Boolean|null)
            return ( typeof( p_value ) == "object" );
                                       ^

    2 error(s), 0 warning(s), 99.0% typed

即使我尝试将类型设置为 {Boolean|null} ,我仍然会收到错误消息。是什么赋予了?

4

2 回答 2

4

您应该将返回类型声明为,{boolean}而不是{Boolean}因为{boolean}指的是原始布尔类型,而{Boolean}指的是包装器{Boolean}类型。

于 2011-07-08T16:54:22.707 回答
2

这会有帮助吗?此外,您还有更清晰、更易读的代码......

var my.company.tool = {
    "isNumber": function( p_value )
    {
            return typeof(p_value) == "number";
    },
    "isObject": function( p_value )
    {
            return typeof(p_value) == "object";
    }
}
于 2011-07-07T20:04:25.000 回答