2017-06-18 59 views
1

我有一個變量存儲,它存儲所有類型的元素。所以基本上是與主要URL和價值PersonInstance的字典:VS代碼 - 如何使用JSDoc文檔對象

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

其實我可以寫做:

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

但是VS代碼智能感知不會在這種情況下工作。有沒有其他的方式來記錄VS代碼中無限數量的鍵的對象?

回答

2

VScode的javascript intellisense由TypeScript提供支持,它不幸當前不支持Object.<string, Person>類型的語法。 Here's the bug tracking this

您可以解決此通過使用打字稿語法圖:

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

這將提高vscode的智能感知,但不是一個標準的或廣泛的支持jsdoc類型。

+0

這正是我所期待的。謝謝! –

0

我發現最好用Map代替object。所以基本上你可以寫這樣的事情

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

注意:如果你舊的瀏覽器,不支持ES6擔憂,您可以使用transpile巴貝爾。