Я пытаюсь использовать Eclipse для разработки Javascript на стороне сервера.
Используемый мной API имеет функцию doStuff(string, object)
(имена изменены для защиты виновных), которая возвращает значение различных типов (подклассы одного типа) в зависимости от (значений) передаваемых им аргументов.
Я создал библиотеку Javascript для описания этой функции:
/**
* function doStuff(s, o)
* @memberOf Global
* @param {String} s
* @param {Object} o
* @type ResultType
* @returns {ResultType}
*/
doStuff = function(str, obj} {return new ResultType();}
Поскольку она может возвращать несколько типов,Я объявил это как возвращающий базовый тип.Однако это означает, что Eclipse не знает, какой он на самом деле, и поэтому я получаю позже ложные ошибки при попытке доступа к полям этого объекта.
Так что может быть FooResultType, BarResultType, каждый из которых является ResultTypes, но есть дополнительные поля / функции
Есть ли способ обойти это?Можно ли как-то аннотировать переменную, содержащую возвращаемое значение, чтобы Eclipse знал, какой это тип на самом деле?
Я пробовал (с фигурными скобками и без скобок вокруг FooResultType)
/**
* @type FooResultType
*/
v = doStuff("stringvalue", someObject);
, но это делаетбез разницы.
(Есть другие вопросы в этой области, но я думаю, что они не касаются этой проблемы)