打字稿新手。我试图创建一个基于角色的猫鼬模型工厂将返回猫鼬模型。然后,我将在数据访问层(DAL)中使用此模型继续我的业务层。问题是我收到以下错误。 TS2322:type' typeof(../../ model)不能分配给' Model。物业' findById'类型' typeof(' ../../ model')
中缺少我错过了一个明确的演员?
型号代码
foreach(Label label in dv.GetControls<TextBox>())
{
//do stuff
txt.Text = string.Empty;
}
foreach(DropDownList ddl in dv.GetControls<DropDownList>())
{
//do stuff
ddl..ClearSelection();
}
**我的模型工厂代码**我在返回StudentNotification代码中收到错误。
import * as mongoose from "mongoose";
let StudentSchema = new mongoose.Schema({
id:Number,
username: String,
email: String,
sectors: [{
sectorName:String,
QP: String
}]
}, {
timestamps: {
createdAt: 'created_at'
}
});
export default mongoose.model('StudentNotification', StudentSchema);
答案 0 :(得分:1)
要导入默认导出,您需要使用以下语法:
import * as mongoose from "mongoose";
import StudentNotification from './models/student'; // HERE !
function Create():mongoose.Model<mongoose.Document>{
switch(this.userRole){
case "Student":{
return StudentNotification;
}
default :{
return null;
}
}
}
或者如果你使用*语法,那么你必须这样写:
import StudentNotification from './models/student';
...
return StudentNotification.default;
答案 1 :(得分:0)
您必须将import语句更改为:
import StudentNotification from './models/student';
因为当您导出它时,您使用default
关键字将其导出。
export default mongoose.model('StudentNotification', StudentSchema);