Интерфейсы Shema
export interface MyCat {
name: string;
color: string;
}
export type Cat = MyCat & Document;
export const CatSchema = new Schema({
name: {
type: String,
required: true,
},
color: {
type: String,
required: true,
}
});
Для получения функции (обратите внимание, что у нее нет свойства цвета)
export class CreateCatDto {
@IsString()
readonly name: string = 'Franco';
}
Функция вызвана, она не выдает ошибку на новом Cat (cat) , выдает ошибку во время выполнения в пн goose, говоря пропущенные обязательные атрибуты
constructor(@InjectModel('Cat') private readonly catModel: Model<Cat>) {}
async create(cat: CreateCatDto) {
// typescript should give me an error here :(
const createdCat = new this.catModel(cat);
return await createdCat.save();
}
Мой вопрос: как заставить функции модели понять, что им нужно правильно получать? Из того, что я вижу, они часто принимают any
тип