2017-06-18 1 views
1

J'ai une variable de stockage, qui stocke tous les éléments de type Personne. Donc, fondamentalement, il est un dictionnaire avec la clé URL et la valeur PersonInstance:VS Code - comment documenter un objet en utilisant JSDoc

let storage = {} 
storage["localhost.com/person/1"] = new Person("John Wick"); 

En fait, je pouvais le faire en écrivant:

/** 
* @type {Object.<string, Person>} 
*/ 

Mais VS code IntelliSense ne fonctionne pas dans ce cas . Existe-t-il un autre moyen de documenter un tel objet avec un nombre illimité de clés dans VS Code?

Répondre

2

L'intel javascript de VScode est alimenté par TypeScript qui malheureusement ne supporte pas actuellement la syntaxe de type Object.<string, Person>. Here's the bug tracking this.

Vous pouvez contourner ce problème en utilisant la syntaxe tapuscrit pour la carte:

/** 
* @type {{ [key: string]: Person }} 
*/ 
const storage = {} 

qui améliorera la IntelliSense dans vscode mais pas un type de jsdoc standard ou largement pris en charge.

+0

C'est exactement ce que je cherchais. Je vous remercie! –

0

J'ai trouvé qu'il est préférable d'utiliser Map au lieu de l'objet. Donc, fondamentalement, vous pouvez écrire quelque chose comme ça

/** 
    * @type {Map<string, Person>} 
    */ 
    let bsStorage = new Map(); 

REMARQUE: Et si vous préoccupé par les anciens navigateurs, qui ne prennent pas en charge ES6, vous pouvez transpile en utilisant Babel.