预期功能:对象方法的自动完成和方法参数的识别
实际功能:未识别自动填充或方法参数。将鼠标悬停在方法上会在工具提示上显示any
(而不是该方法的父对象)
有任何帮助吗?我今天刚从Webstorm切换到VSC并遇到了这个问题。
结构和代码
自定义静态方法(导出userProfile模型):
/database/profileModel.js
userSchema.statics.addProfile = function(formData){
this.create(formData, e => e ? console.log(e) : false);
};
userSchema.statics.getProfile = function(userName){
return this.findOne({userName : userName});
};
userSchema.statics.getProfileItem = function(userName, item){
return this.findOne({userName : userName}, item);
};
API端点(导出路由器):/routes/APIendpoint.js
const express = require('express');
const router = module.exports = express.Router();
const userProfile = require('../database/profileModel').userProfile;
userProfile.getProfileItem()
@Neil Lunn以下是它工作的证明 - 因为你是如此肯定。 没有先进的计划
这也没有解决问题。这是使用高级模式的新代码。它识别该文件中的方法但不是在导入它的另一个文件中。
class User {
// general static methods
addProfile(formData) {
this.create(formData, error => console.log(error));
}
getProfile(userName) {
return this.findOne({userName : userName});
}
getProfileItem(userName, item) {
return this.findOne({userName : userName}, item);
}
}
userSchema.loadClass(User);
const userProfile = module.exports = mongoose.model('userProfile', userSchema);