2017-03-07 216 views
1

的對象屬性我的代碼是這樣的:描述變量

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代碼FPGA實現的能力,類似的情況下,

var obj = { 
    property1: 'value1', 
    property2: 'value2', 
} 

當我開始鍵入

obj. 

IDE帶我完成物業在第二種方式,而不是在第一。

如何在jsDoc中描述對象以完成此操作? autocomplete example

回答

0

我找到了解決辦法

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'] 
    } 
} 

right solution

0

我相信這是你正在尋找的答案。

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)); 
+0

不是。 Jetbrain IDE的可以自動完成對象變量的屬性。但沒有jsDoc,它只適用於靜態對象。 Functon在答案允許我複製我的對象到選定的屬性簡化。 但我需要使用IDE自動完成任何類型的對象。 我想找到一種方法來更正描述對象以啓用此功能。 –