Я пытаюсь использовать 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);
, но это не имеет значения.
(Есть другие вопросы в этой области, но я думаю, ничего, что могло бы решить эту проблему)