Я изучаю TypeScript и играю с мангустом. У меня есть следующее определение схемы (упрощенная форма):
interface IContact extends Document {
type: string;
firstName?: string;
}
const contactSchema = new mongoose.Schema({
contactType: {
type: String,
required: true,
trim: true,
enum: ['person', 'general']
},
firstName: {
type: String,
required: function() {
return this.contactType === 'person';
},
minlength: 1,
trim: true
}})
const Contact = mongoose.model<IContact>('Contact', contactSchema);
Теперь компилятор TypeScript выдает мне следующую ошибку:
Свойство contactType не существует для типа «Схема | SchemaType | SchemaTypeOpts.
Свойство contactType не существует для типа «Схема».
Проверка правильности обязательного поля, взятая из документации mongoose, правильная (с использованием ключевого слова this
), или есть другой способ?
Или я должен аннотировать мою схему таким образом, чтобы TypeScript знал, что в моей схеме есть свойство contactType
?