Javascript 描述变量的对象属性

Javascript 描述变量的对象属性,javascript,webstorm,jsdoc,Javascript,Webstorm,Jsdoc,我有这样的代码: var availableCondition = { property1: { condition: true, value: 'value1' }, property2: { condition: false, value: 'value2' }, } var obj = {} for (var key in availableCondition) { var potent

我有这样的代码:

var availableCondition = {
    property1: {
        condition: true,
        value: 'value1'
    },
    property2: {
        condition: false,
        value: 'value2'
    },
}
var obj = {}
for (var key in availableCondition) {
    var potentialProperty = availableCondition[key];
    if (potentialProperty ['condition']){
         obj[key] = potentialProperty['value']
    }
}
我如何描述var obj以使其具有IDE代码实现的能力,比如case

var obj = {
     property1: 'value1',
     property2: 'value2',
}
当我开始打字时

obj.
IDE以第二种方式完成属性,但不是第一种方式

如何在jsDoc中描述对象以完成此操作?

我相信这就是你想要的答案

var availableCondition = {
  property1: {
    condition: true,
    value: 'value1'
  },
  property2: {
    condition: false,
    value: 'value2'
  }
}

function createObj(obj) {
  var result = {};
  for (var key in obj) {
    result[key] = obj[key].value;
  }  
  return result;
}
console.log(createObj(availableCondition));

我相信这就是你想要的答案

var availableCondition = {
  property1: {
    condition: true,
    value: 'value1'
  },
  property2: {
    condition: false,
    value: 'value2'
  }
}

function createObj(obj) {
  var result = {};
  for (var key in obj) {
    result[key] = obj[key].value;
  }  
  return result;
}
console.log(createObj(availableCondition));
我找到了解决办法

var availableCondition = {
    property1: {
        condition: true,
        value: 'value1'
    },
    property2: {
        condition: false,
        value: 'value2'
    },
};
/**
 *
 * @type {object}
 * @property {string} property1
 * @property {string} property2
 */
var myObj = {};
for (var key in availableCondition) {
    var potentialProperty = availableCondition[key];
    if (potentialProperty ['condition']){
        myObj[key] = potentialProperty['value']
    }
}
我找到了解决办法

var availableCondition = {
    property1: {
        condition: true,
        value: 'value1'
    },
    property2: {
        condition: false,
        value: 'value2'
    },
};
/**
 *
 * @type {object}
 * @property {string} property1
 * @property {string} property2
 */
var myObj = {};
for (var key in availableCondition) {
    var potentialProperty = availableCondition[key];
    if (potentialProperty ['condition']){
        myObj[key] = potentialProperty['value']
    }
}

一点也不。Jetbrain IDE可以自动完成对象变量属性。但如果没有jsDoc,它只适用于静态对象。答案中的函数允许我使用所选属性将对象复制到simplified中。但是我需要使用IDE自动完成任何类型的对象。我想找到一种方法,如何正确描述对象以启用此功能。一点也不。Jetbrain IDE可以自动完成对象变量属性。但如果没有jsDoc,它只适用于静态对象。答案中的函数允许我使用所选属性将对象复制到simplified中。但是我需要使用IDE自动完成任何类型的对象。我想找到一种方法,如何正确描述对象以启用此功能。