繁体   English   中英

为 function 参数定义 object 类型/在 VS 代码中自动完成

[英]Define object type for function parameter / get auto completion in VS Code

我刚刚开始使用 JavaScript(使用节点),我使用 VS Code 作为我的编辑器。 我有一个 object collection ,VS Code 为我提供了方法名称的自动完成功能。 但是,我将此 object 传递给 function 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?
}

在此处输入图像描述

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

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

}

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

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

正如您在此屏幕截图中看到的我的第一个案例在此处输入图像描述 我得到自动完成,就好像我的集合是一个字符串数组一样。 我在这里展示的是一些非常简单的类型,但你知道它是如何工作的。 jsDoc 也非常适合注释您的代码,例如输入参数和返回参数等。

另外为了清楚起见,我还包含了一个更复杂的使用 vs 代码自动完成的屏幕截图。

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

在此处输入图像描述

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

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM