首页 > 解决方案 > 理解 VS Code IntelliSense/强制 VS Code IntelliSense

问题描述

我正在开发一个 Node.js 模块,其中必须导出几个类。为了节省时间,我决定使用循环进行导出。这是一个片段:

const _erros = {
  MyError1: {
    // fields
  },
  MyError2: {
    // fields
  }
  // other errors
}

class BaseError extends Error {
  constructor (data) {
    // things
  }
}

module.exports = Object.keys(_errors)
  .reduce((acc, className) => Object.assign(acc, {
    [className]: class extends BaseError {
      constructor (message) {
        const params = Object.assign({}, _errors[className])
        params.message = message || params.message
        super(params)
      }
    }
  }), { BaseError })

虽然导出做得很好,但 VS Code IntelliSense 只检测到 BaseError。看看这张图片:证明 IntelliSense 不起作用

如您所见,仅检测到 BaseError:IntelliSense 未显示 MyError1、MyError2 和所有其他错误。

这是正确的 VS Code 行为还是错误?不管答案如何,有没有办法让 VS Code IntelliSense 与循环生成的导出一起工作?

标签: javascriptnode.jsvisual-studio-code

解决方案


推荐阅读