Как я могу заставить IDE предлагать функциональные параметры скомпилированного babel javascript?

#javascript #intellisense #babeljs #code-completion

#javascript #intellisense #babeljs #завершение кода

Вопрос:

Я работаю над библиотекой, в которой я пишу код es6 и переношу его в es5 . При попытке протестировать выходной es5 код IDE не может дать мне подсказки об аргументах функции. Кажется, он только знает, что я экспортировал функцию с именем foo . Я пробовал это на обоих vs code и Webstorm . Я видел, что многие другие библиотеки, которые я использовал, дают подсказки о параметрах функции. Я экспортировал функции, предоставляемые моей библиотекой, в файл записи моей библиотеки — index.js . Файл ввода выглядит следующим образом:

 import {
  foo,
} from "./utils";

export {
  foo
};
  

Результат выглядит следующим образом:

 "use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
Object.defineProperty(exports, "foo", {
  enumerable: true,
  get: function get() {
    return _calculate.default;
  }
});

var _calculate = _interopRequireDefault(require("./calculate"));

function _interopRequireDefault(obj) { return obj amp;amp; obj.__esModule ? obj : { default: obj }; }
  

Я использую babel для переноса следующим образом:

$ babel -d lib src/

Что я могу сделать, чтобы транспилированный код предоставлял пользователю подсказки по параметрам?

Ответ №1:

Если вы используете NetBeans IDE, вы можете использовать L_CTRL ПРОБЕЛ.. Это откроет то, что доступно в библиотеках, которые вы используете. Допустим, я использую THREE.js ; Я могу ввести:

ТРИ.B L_CTRL SPACE и вернул бы это введите описание изображения здесь

Также, если вы хотите предоставить документацию о функции, вы можете использовать комментарии JavaDoc, подобные этому:

  /**
  * Author : prisoner849
  * https://jsfiddle.net/prisoner849/8hqy99jj/
  * @param {type} geometry
  * @param {type} independent
  * @returns {GridBoxGeometry.newGeometry|THREE.BoxBufferGeometry}
  */
  function GridBoxGeometry(geometry, independent) {
     ....
  }
  

введите описание изображения здесь