首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >向Eclipse/JSDT指定Javascript变量的类型

向Eclipse/JSDT指定Javascript变量的类型
EN

Stack Overflow用户
提问于 2011-07-04 01:51:07
回答 1查看 1.7K关注 0票数 5

我正在尝试使用Eclipse进行一些服务器端Javascript开发。

我使用的API有一个函数doStuff(string, object) (为了保护有罪的人而更改了名称),该函数根据传递给它的参数(的值)返回不同类型(某一类型的子类)的值。

我已经构建了一个Javascript库来描述这个函数:

代码语言: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周围有花括号和没有花括号)

代码语言:javascript
复制
/**
  * @type FooResultType
  */
  v = doStuff("stringvalue", someObject);

但这并没有什么不同。

(在这个领域还有其他问题,但我认为没有解决这个问题的问题)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-07-06 20:19:40

(回答我自己的问题)

下面的方法是可行的。关键似乎是"var“-只有通过声明一个变量,才能让JSDT识别它具有指定的类型。我怀疑JSDT只能管理每个变量的一种类型,当然,作为Javascript,该类型可以任意更改。

代码语言:javascript
复制
/**
  * @returns {FooResultType}
  */
  var v = doStuff("stringvalue", someObject);

它似乎还需要@return而不是@type,尽管很难知道JSDT支持和不支持什么-它没有很好的文档记录,需要实验。有时候,小小的改变似乎会带来意想不到的变化。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6564512

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档