как vscode распознает тип модуля js - PullRequest
2 голосов
/ 31 января 2020

Я новичок в javascript и машинописи, и я устанавливаю модуль mysql, используя npm install mysql

, и я обнаружил, что intellisense vscode может автоматически распознавать тип даже когда я использую javascript

просто так

enter image description here

и исходный файл модуля не содержит .ts файл, интересно, как он работает.

Ответы [ 2 ]

1 голос
/ 31 января 2020

Код загружает ТС в фоновом режиме. Он проверяет пакет. json или импортирует, чтобы решить, какие наборы получить. Набор для mysql:

https://github.com/DefinitelyTyped/DefinitelyTyped/blob/8f158d2d4c8459463e5e0a27cc298041483c5e22/types/mysql/index.d.ts

Для получения дополнительной информации перейдите по ссылке ниже:

https://code.visualstudio.com/docs/nodejs/working-with-javascript

1 голос
/ 31 января 2020

Пакет mysql написан на чистом JS, однако включает документацию. Эта документация стандартизирована как JSDo c. VSCode имеет встроенную поддержку для чтения этой документации и отображения ее пользователю. (Примечание: он не поддерживает все теги JSDo c)

Пример из mysql/index.js. ( source )

/**
 * Create a new Connection instance.
 * @param {object|string} config Configuration or connection string for new MySQL connection
 * @return {Connection} A new MySQL connection
 * @public
 */
exports.createConnection = function createConnection(config) {
  var Connection       = loadClass('Connection');
  var ConnectionConfig = loadClass('ConnectionConfig');

  return new Connection({config: new ConnectionConfig(config)});
};

Тег @param указывает, какие типы config могут получать. {object|string} означает, что это может быть либо объект, либо строка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...