Почему VS Code показывает информацию о типах из JSDoc для var, но не для других членов в JavaScript? - PullRequest
0 голосов
/ 29 мая 2018

Следующее противоречие в коде Visual Studio оставляет меня озадаченным:

function ExampleModule() {

    /** @type { string } */
    this.myMember; // tooltip shows 'any'

    /** @type { string } */
    var mySecondMember; // tooltip shows 'string'
}

Я хотел бы добавить информацию о типе в свои модули через JSDoc , что хорошо работает в некоторых ситуациях, таких какподписи метода и, очевидно, он работает для переменных, объявленных с ключевым словом var, но не в том случае, если я добавляю элемент в свой объект, как показано с ключевым словом this.

Я посмотрел документацию, в частности этот документ о поддерживаемых комментариях JSDoc , но, похоже, они не объясняют, почему this.myMember не генерирует информацию о intellisense.

Есть ли способ улучшить отображаемую информацию о типах для членовили существует более подробная информация о поддерживаемых языковых конструкциях?

1 Ответ

0 голосов
/ 29 мая 2018

Это не так, как работает нотация классов.Сначала вы определяете составной тип, а затем используете его для своих переменных.Я не знаю, можете ли вы определить «этот» тип.

/**
 * @typedef {Object} ExempleModule
 * @property {string} myMember
 */

/** @type {ExempleModule} */
...