VSCode JSDo c - определить тип свойства Dynami c - PullRequest
0 голосов
/ 09 января 2020

У меня есть класс, который расширяет класс от некоторого внешнего кода. В моем «конструкторе» я установил поле, которое родитель использует для выполнения вызова API, и по завершении результат сохраняется в свойстве data (доступном из моего экземпляра класса через this.data).

Как я могу сказать VSCode через JSDo c комментарии, какова структура this.data? Я на самом деле создаю структуру данных, которая возвращается из вызова API, поэтому она мне известна. В моем коде @typedef s, но я не могу сказать классу, как выглядит this.data.

Лучшее, что я смог сделать, это работает так:

class a extends b {
    render() {
        const stuff = /** @type {Stuff} */ (this.data).stuff[1].thing;
    }
}

Проблема этого подхода заключается в том, что он применим только для этого конкретного использования this.data.

1 Ответ

0 голосов
/ 09 января 2020

Поиграв с некоторыми, кажется, что проще всего было просто инициализировать this.data в моем конструкторе классов (метод init) пустой строкой. Выше этой инициализации я использовал @type, чтобы определить ее структуру. Я действительно не хотел добавлять ошибочный код для достижения этой цели, но я думаю, что это не слишком много.

/** @type {{FOCUS_NOTES: FOCUS_NOTES}} */
this.data = "";
...