混淆WebStorm类型识别函数返回类型

时间:2015-01-28 14:32:54

标签: javascript webstorm jsdoc

使用以下代码:

/**
 * @typedef {foo} MyFoo
 * @property {String} fooText
 * @property {Number} fooValue
 */

/**
 * @type {MyFoo}
 */
var foo = {
  fooText : '',
  fooValue : 0
};

/**
 * @param {MyFoo} someFoo
 * @returns {MyFoo}
 */
function doStuff(someFoo)
{
  var result = Object.create(foo);

  result.fooText = someFoo.fooText + '!';
  result.fooValue = someFoo.fooValue + 1;

  return result; 
}


var someFoo = Object.create(foo);
someFoo.fooText = 'Hello';
someFoo.fooValue = 3;

var someOtherFoo = doStuff(someFoo);
var anotherFoo = doStuff(someOtherFoo);

我创建了一个类型MyFoo。我将此类型用作函数doStuff的参数和返回值。然后,我重复调用doStuff函数,首先调用使用Object.create创建的对象,然后调用前一次调用的返回值。

以下是问题: Argument type MyFoo is not assignable to parameter type MyFoo

参数类型MyFoo不能分配参数类型MyFoo

另外,someOtherFooanotherFoo不再使用MyFoo属性自动完成。

发生了什么?

1 个答案:

答案 0 :(得分:2)

这是一个错误。 WEB-13724已修复,修复将包含在WebStorm 10中