javascript - 为函数参数定义对象类型/在 VS Code 中自动完成

标签 javascript typescript visual-studio-code

我刚刚开始使用 JavaScript(使用 Node),并且使用 VS Code 作为编辑器。我有一个对象集合,VS Code 为它提供了方法名称的自动完成功能。但是,我将此对象传递给函数 myFunction。在 myFunction 主体内,我没有得到 collection 的自动完成。

虽然我可以理解这一点,但我想知道如何解决这个问题。这个问题可以用 JavaScript 解决吗?还是我已经需要 TypeScript 了?

// Get the documents collection
collection = db.collection('myCollection');

// typing "collection." here I get auto completion and can
// e.g. select collection.insertOne
myFunction(collection)

function myFunction(collection) {
  // no auto completion here when typing "collection."
  // (at least it doesn't show collection.insertOne)
  // how to get auto completion here? Do I need TypeScript for that?
  // or is it possible with JavaScript?
}

enter image description here

最佳答案

嗨,这可以通过执行类似的操作轻松解决

 /**
 * 
 * @param {string[]} collection
 */
function myFunction(collection) {

}

这称为 jsDoc,在涉及 javascript 时非常有用。 您还可以函数中使用它来获得类似的效果作为示例

   /**
   * 
   * @type {number}
   */
  const aNumber = 5;

正如您在此屏幕截图中看到的我的第一个案例 enter image description here我得到自动完成,就好像我的集合是一个字符串数组一样。我在这里展示的是一些非常简单的类型,但是您已经了解了它是如何工作的。另外,jsDoc 非常适合注释代码,例如输入参数和返回参数等。

另外,为了清楚起见,我还提供了使用 VS Code 进行更复杂的自动完成的屏幕截图。

示例是在函数中使用电子的“应用程序”,并以与收集相同的方式获得自动完成

enter image description here

相反,如果我省略 jsdoc,就会发生这种情况

enter image description here

关于javascript - 为函数参数定义对象类型/在 VS Code 中自动完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62365289/

相关文章:

javascript - Jquery滚动到不滚动

javascript - 在 CSS 和 Javascript 中创建标签系统

javascript - vscode 在 jsconfig.json 文件中显示 typescript 相关问题

typescript - TypeError: book.isEqual 不是一个函数

visual-studio-code - VS代码: How can I execute an arbitrary task using the JavaScript API?

javascript - 如何使用正则表达式来约束 ReactJS 路由

javascript - 具有复选框的字段集

typescript - 当从选择框中选择其他选项时,ionic2 显示输入字段

javascript - VSCode - Chrome 调试 - 未验证的断点

python - vscode 在 docker 实例中运行/调试 python