【发布时间】:2020-06-06 18:29:59
【问题描述】:
我有一个带有 Activiy 接口和 Mongo Schema 的模型,以及一个接受 ID 并记录它的函数。 然后在我的路线中,我查询来自未定义 externalId 的给定客户的所有活动。使用返回的数组,我调用模型中定义的函数,将 externalId 作为参数传递。
但是 TypeScript 一直在抛出:'number | 类型的参数undefined' 不能分配给“number”类型的参数。类型“未定义”不可分配给类型“数字”。
我已经尝试使用 if 语句检查是否为 externalId && typeof externalId === 'number' 来包装调用,但我无法让错误消失。
型号:
import { Schema, model, } from 'mongoose';
interface IActivity {
customer: string,
externalId?: number,
}
const activitySchema: Schema = new Schema({
Customer: {
type: String,
required: true,
minlength: 5,
maxlength: 50,
},
externalId: { type: Number, },
});
export function updateExternal(externalId: number): void {
console.log(externalId);
}
export const Activity = model<IActivityModel>('Activity', activitySchema);
路线:
const completeActivity = await Activity
.find({
'externalId': { '$ne': undefined, },
'customer': 'Foo Customer',
});
completeActivity.forEach((activity) => {
updateExternal(activity.externalId); // This is where the error appears
});
【问题讨论】:
-
如果
activity没有extenralId会怎样?您需要设置默认值还是根本不调用updateExternal?
标签: node.js typescript