JSDoc属性名称包含句点

时间:2019-05-22 17:08:40

标签: javascript visual-studio-code jsdoc

当对象中包含句点时,如何在JSDoc / VSCode中记录对象的属性?

例如:

/**
 * @type {PersonObject}
 */
let personObject = {
   "first.last": "John Doe", // optional
   "age": 31
}

/**
 * @typedef {Object} PersonObject
 * @property {String} [first.last]
 * @property {Number} age
 */
  

{       “ message”:“类型'{\” first.last \“:字符串; age:数字;}'不能分配给类型'PersonObject'。\ n对象文字只能指定已知的属性,而'\” first.last \“'在'PersonObject'类型中不存在。”,       “ source”:“ ts”,   }

1 个答案:

答案 0 :(得分:0)

假设您使用的是Closure Compiler,或者至少使用兼容的JSDoc风格:

我建议使用new @typedef syntax似乎是work in this example

/**
 * @typedef  {{
 *            first.last:string,
 *            age:number,
 *          }}
 */
var PersonObject;

/**
 * @type {PersonObject}
 */
let personObject = {
   "first.last": "John Doe", // optional
   "age": 31
}

请注意,当您在任一位置更改“ first.last”时,Closure都会发出一个warning

JSC_TYPE_MISMATCH: initializing variable
found   : {age: number, firstzzzzz: string}
required: {age: number, first.last: string}
missing : [first.last]
mismatch: [] at line 14 character 19
let personObject = {