VS Code - 如何使用 JSDoc 记录对象
VS Code - how to document an object using JSDoc
我有一个变量 storage,它存储类型为 Person 的所有元素。所以基本上它是一个键 URL 和值 PersonInstance:
的字典
let storage = {}
storage["localhost.com/person/1"] = new Person("John Wick");
实际上我可以这样写:
/**
* @type {Object.<string, Person>}
*/
但是 VS Code Intellisense 在这种情况下不起作用。有没有其他方法可以在 VS Code 中使用无限数量的键来记录此类对象?
VScode 的 javascript 智能感知由 TypeScript 提供支持,不幸的是,它目前不支持 Object.<string, Person>
类型语法。 Here's the bug tracking this.
您可以通过对地图使用打字稿语法来解决此问题:
/**
* @type {{ [key: string]: Person }}
*/
const storage = {}
这将改进 vscode 中的智能感知,但不是标准或广泛支持的 jsdoc 类型。
我发现用 Map
代替 object 更好。所以基本上你可以这样写
/**
* @type {Map<string, Person>}
*/
let bsStorage = new Map();
注意:如果您担心不支持 ES6 的旧版浏览器,您可以使用 Babel 进行转译。
已添加缺少对 Object<string, T>
的支持。但是,请注意大小写很重要!
有效
Object<string, T>
其中字符串是索引,T 是值类型。
不起作用
object<string, T>
- 对象必须以大写开头:Object
Object<String, T>
- 字符串必须全部小写:string
我有一个变量 storage,它存储类型为 Person 的所有元素。所以基本上它是一个键 URL 和值 PersonInstance:
的字典let storage = {}
storage["localhost.com/person/1"] = new Person("John Wick");
实际上我可以这样写:
/**
* @type {Object.<string, Person>}
*/
但是 VS Code Intellisense 在这种情况下不起作用。有没有其他方法可以在 VS Code 中使用无限数量的键来记录此类对象?
VScode 的 javascript 智能感知由 TypeScript 提供支持,不幸的是,它目前不支持 Object.<string, Person>
类型语法。 Here's the bug tracking this.
您可以通过对地图使用打字稿语法来解决此问题:
/**
* @type {{ [key: string]: Person }}
*/
const storage = {}
这将改进 vscode 中的智能感知,但不是标准或广泛支持的 jsdoc 类型。
我发现用 Map
代替 object 更好。所以基本上你可以这样写
/**
* @type {Map<string, Person>}
*/
let bsStorage = new Map();
注意:如果您担心不支持 ES6 的旧版浏览器,您可以使用 Babel 进行转译。
已添加缺少对 Object<string, T>
的支持。但是,请注意大小写很重要!
有效
Object<string, T>
其中字符串是索引,T 是值类型。
不起作用
object<string, T>
- 对象必须以大写开头:Object
Object<String, T>
- 字符串必须全部小写:string