所以我有一个帮助程序命名空间,我在开发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;
}
}
因此,在两个返回行上,我得到编译器错误“ERROR - 不一致的返回类型”
如何将这样的三元运算符与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},我仍然会收到错误。是什么给了什么?
答案 0 :(得分:4)
您应该将返回类型声明为{boolean}
而不是{Boolean}
,因为{boolean}
指的是原始布尔类型,而{Boolean}
指的是包装器{Boolean}
类型
答案 1 :(得分:2)
这会有帮助吗?此外,您拥有更清晰,更易读的代码......
var my.company.tool = {
"isNumber": function( p_value )
{
return typeof(p_value) == "number";
},
"isObject": function( p_value )
{
return typeof(p_value) == "object";
}
}