2016-04-21 3 views
3

ich folgende JSDoc Definition haben:WebStorm beschwert sich "nicht übertragbar" Rückkehr neues Objekt (JSDoc bezogen)

/** 
* @name DailyCountersNode 
* @type Object 
* @property {number} BuyGold 
* @property {number} BuyStamina 
* @property {number} MarketReset 
* @property {Object.<string,int>} BossCleared 
* @property {Object.<string,int>} BossResets 
* @property {number} NextResetAt 
*/ 

und meine Funktion Rückkehr eine solche Struktur:

/** 
* @return {DailyCountersNode} 
* */ 
Player.prototype.getDailyCountersNode = function(){ 
    if(!this.mPlayerData.hasOwnProperty("DailyCounters")){ 
     var defVal = { 
      BuyGold: 0, 
      BuyStamina: 0, 
      MarketReset: 0, 
      BossCleared:{}, 
      BossResets:{}, 
      NextResetAt: 0 
     }; 
     return defVal; 
    } 
    return this.mPlayerData.DailyCounters; 
}; 

Und ich habe diese Warnung:

Retour Ausdrucksart [BuyGold: Anzahl, BuyStamina: Nummer .... blah bla bla] nicht ass ignable DailyCountersNode

enter image description here

Dank

Antwort

1

Angemeldet als WEB-21392, bitte folgen sie nach Updates zu geben. Ich würde vorschlagen, anstatt mit @typedef:

/** 
* @typedef {Object} DailyCountersNode 
* @type Object 
* @property {number} BuyGold 
* @property {number} BuyStamina 
... 

Oder Sie @return {typeof DailyCountersNode} statt @return {DailyCountersNode}

+0

verwenden kann ich eigentlich @@ typedef aber WebStorm wurde mit konnte einfach nicht mein Objekt richtig erkennen alle meine Referenzen hervorgehoben überall vor Ich wechsle zu @@ Name ... – Nick

+0

WEB-21392 reagierte mit @return {typeof OBJNAME} was funktioniert. Es wäre besser, wenn Sie die Antwort für mich aktualisieren könnten, anstatt eine andere Antwort auf meine eigene Frage zu senden. – Nick

+0

erledigt. Aber @typedef ist auch eine gültige Lösung, und es funktioniert für mich – lena

Verwandte Themen