向Eclipse/JSDT指定Javascript变量的类型
Specifying to Eclipse/JSDT the type of a Javascript variable
我正在尝试使用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,它们都是ResultType,但都有额外的字段/函数
有办法解决这个问题吗?我可以以某种方式对包含返回值的变量进行注释,以便Eclipse知道它的真正类型吗?
我试过(在FooResultType周围加括号和不加括号(
/**
* @type FooResultType
*/
v = doStuff("stringvalue", someObject);
但这并没有什么区别。
(这个领域还有其他问题,但我认为没有解决这个问题(
(回答我自己的问题(
以下内容确实有效。关键似乎是"var"——只有通过声明一个变量,才能让JSDT识别出它具有指定的类型。我怀疑JSDT每个变量只能管理一个类型,尽管作为Javascript,类型可以任意更改。
/**
* @returns {FooResultType}
*/
var v = doStuff("stringvalue", someObject);
它似乎还需要@return而不是@type,尽管很难知道JSDT支持什么和不支持什么——它没有很好的文档记录,需要进行实验。微小的变化有时似乎会产生意想不到的差异。
相关文章:
- Jquery变量类型问题
- 变量类型错误
- 角度表达式无法使用构造函数属性分辨变量类型
- 如何在 JavaScript 中检查变量类型
- 这是了解 Java 脚本中变量类型的更好方法
- JS全局变量类型之间的差异
- 在JavaScript中通过赋值声明变量类型的好处
- 如何将变量类型分配给对象中的变量
- 使用jQuery分配变量类型时出错
- javascript中的XML变量类型
- 如何正确地检测变量类型,并检测比函数类型更多的类型
- In var foo = true;“foo”的变量类型是什么
- 如何在从javascript发送到php时保留变量类型
- Javascript全局变量类型改变
- Javascript: $result.rows.item(x)变量类型是什么?
- 什么原因导致“变量类型不好”?在JavaScript
- PhoneGap GeoLocation变量类型
- Javascript变量类型
- 这是确定JavaScript变量类型的有效方法吗?
- 严格模式下对象的变量类型