Имя свойства JSDoc, содержащее точку - PullRequest
0 голосов
/ 22 мая 2019

Как я могу задокументировать свойство объекта в 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 \": string; age: number;}' нельзя назначить типу PersonObject. \ n Литерал объекта может указывать только известные свойства, а '\ "first.last \"' не существуетв типе 'PersonObject'. "," source ":" ts ",}

1 Ответ

0 голосов
/ 24 мая 2019

Предполагается, что вы используете Closure Compiler или, по крайней мере, вариант JSDoc, который совместим с:

Я предлагаю использовать новый синтаксис @typedef , похоже, работает вэтот пример .

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

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

Обратите внимание, что когда вы меняете 'first.last' в любом месте, Closure будет выдавать предупреждение :

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 = {
...