我刚刚开始使用 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?
}
最佳答案
嗨,这可以通过执行类似的操作轻松解决
/**
*
* @param {string[]} collection
*/
function myFunction(collection) {
}
这称为 jsDoc,在涉及 javascript 时非常有用。 您还可以在函数中使用它来获得类似的效果作为示例
/**
*
* @type {number}
*/
const aNumber = 5;
正如您在此屏幕截图中看到的我的第一个案例 我得到自动完成,就好像我的集合是一个字符串数组一样。我在这里展示的是一些非常简单的类型,但是您已经了解了它是如何工作的。另外,jsDoc 非常适合注释代码,例如输入参数和返回参数等。
另外,为了清楚起见,我还提供了使用 VS Code 进行更复杂的自动完成的屏幕截图。
示例是在函数中使用电子的“应用程序”,并以与收集相同的方式获得自动完成
相反,如果我省略 jsdoc,就会发生这种情况
关于javascript - 为函数参数定义对象类型/在 VS Code 中自动完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62365289/