【发布时间】:2019-11-28 15:00:10
【问题描述】:
我的模型/order.ts:
import mongoose from './db'
import { ICard } from './cards'
export interface IOrder extends mongoose.Document {
cardID: ICard['_id'];
paid: boolean;
name: string;
street: string;
};
export const OrderSchema = new mongoose.Schema({
cardID: { type: mongoose.Schema.Types.ObjectId, required: true },
paid: { type: Boolean, required: true },
name: { type: String, required: true },
street: { type: String, required: true },
})
const Order = mongoose.model<IOrder>('Order', OrderSchema);
export default Order;
现在在我的控制器/orderController.ts 中,应该对 orderData 进行类型检查,但不是:
import Order, { IOrder } from '../model/orders';
let orderData:IOrder = new Order({
cardID: 33,
paid: "I don't care, I am not a boolean",
name: 33333,
city: "I am new, not defined in IOrder" //street missing here
});
我尝试的是这个,但这有点开销;我介绍“IOrderType”并将它们连接在一起:
import mongoose from './db'
import { ICard } from './cards'
export interface IOrder extends mongoose.Document, IOrderType {
}; // wireup
export interface IOrderType { //new IOrderType
cardID: String;
paid: Boolean;
name: String;
street: String;
}
export interface IOrder extends mongoose.Document {
cardID: ICard['_id'];
paid: boolean;
name: string;
street: string;
};
export const OrderSchema = new mongoose.Schema({
cardID: { type: mongoose.Schema.Types.ObjectId, required: true },
paid: { type: Boolean, required: true },
name: { type: String, required: true },
street: { type: String, required: true },
})
const Order = mongoose.model<IOrder>('Order', OrderSchema);
export default Order;
在此之后我的数据得到验证...这是正确的方法吗?
【问题讨论】:
标签: typescript mongoose