Итак, у меня есть пространство имен помощников, которое я храню полезные дополнения при разработке JS. Теперь я планирую лучше их документировать и укрепить свой JS с помощью JsDoc и с помощью компилятора Google Closure. Я получил последние версии на 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 Closure? И да, я гуглил, но я просто продолжаю получать нерелевантные результаты поиска. Сейчас я удалю троичные, но предпочел бы использовать их без ошибок:
Поэтому я обновил свои высказывания в соответствии с предложением «Томаша Нуркевича», но я все еще получаю ошибки:
Изменено сделано для кода:
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}, я все равно получаю ошибки. Что дает?