Технически это не является ошибкой, поэтому я не выдал ошибку на GitHub, но похоже, что должно быть лучшее поведение (или, возможно, лучший способ определить экспорт).
СкажитеУ меня есть:
function one() {
// do stuff
}
function two() {
one()
}
module.exports = {one, two};
В другом файле, когда мне требуется этот модуль, оба one
и two
отображаются как свойства объекта (синие значки). VSCode, кажется, не признает, что они на самом деле являются функциями. Это то же самое поведение, если вы определяете именованные анонимные функции, такие как module.exports = {one: function () {}};
, что имеет смысл при такой записи. Но если я просто хочу, чтобы функция отображалась как функция в экспорте, я могу заставить ее работать только так:
module.exports = {
one() { /* do stuff */ },
two() { /* do more stuff */},
};
В некоторых случаях это работает, но если two
необходимовызовите one
, и обе функции необходимо экспортировать, вы должны использовать this.
для доступа к другим элементам.
Как определить группу функций в модуле, которые могут использовать друг друга, а также экспортировать их всечтобы они отображались в виде функций (фиолетовый значок) в других модулях в VSCode?
EDIT
Проблема заключается в том, чтобы заставить VSCode распознавать и подсказывать функции как таковые при запросе их от других модулей,вместо того, чтобы они отображались как «свойства» модуля.