如何告诉IntelliJ有关TinyMCE动态属性的信息?

时间:2012-05-16 14:25:42

标签: intellij-idea tinymce

我正在使用IntelliJ进行一些Javascript开发。我们在我们的网站上使用TinyMCE,它有一些动态生成的方法(它的事件)。

IntelliJ抱怨它无法解析变量......不出所料,因为事件是动态生成的。

我知道我可以抑制那条线的检查,但是有更好的方法吗?理想情况下,我希望能够告诉IntelliJ这些变量......也许是通过JSDoc?或者还有另一种方式吗?

修改

基本上,这适用于在运行时创建的属性,并且不能由IntelliJ静态确定。

一个基本的例子是这段代码:

var Foo = {
  addMethod: function() {
    this.newMethod = function() {
      console.log("This method is dynamically generated");
    }
  }
}

var foo = new Foo();
foo.addMethod();
foo.newMethod();

IntelliJ可以推断出addMethod是一种方法,但它无法推断出newMethod是一种有效的方法。

我可以做些什么来教授IntelliJ newMethod是合法的吗?

2 个答案:

答案 0 :(得分:0)

我认为问题在于IntelliJ不会推断内联属性的类型,即使它们是函数。让IntelliJ发挥出色的唯一方法是使用原型而不是内联对象表示法。即:

function Bar() { }
Bar.prototype.addMethod = function() { };
Bar.prototype.newMethod = function() { };

var bar = new Bar();
bar.addMethod();
bar.newMethod();

答案 1 :(得分:0)

我不知道这是否仍然相关, 但我发现你可以添加'命名空间'文档注释来告诉IntelliJ / Webstorm它不知道的方法。

对于您的示例,添加

  /** @namespace bar.newMethod */

确保IntelliJ不再将您的使用标记为无效