[英]Angular Typescript object property is clearly not undefined but property is
[英]Object is possible undefined? Typescript Angular
我正在嘗試實現這個 function 但我不斷收到這個未定義的錯誤。
let item: OrderItem | undefined;
item = this.order.items.find(o => o.productNumber === product.productNumber);
if (item !== undefined) {
item.quantity++;//Error
} else {//Something}
錯誤發生在 item.quantity++ 附近; 這些是我嘗試過的事情
if (!item) {
item.quantity++;
if (item) {
item.quantity++;
任何幫助表示贊賞。
訂單.ts
export class OrderItem {
Id: number | undefined;
productId: number | undefined;
productNumber: number | undefined;
productName: string | undefined;
productPicture: string | undefined;
productPrice: number | undefined;
productDescription: string | undefined;
quantity: number | undefined;
unitPrice: number | undefined;
}
export class Order {
orderId: number | undefined;
orderNumber: string | undefined;
orderDate: Date = new Date();
orderTotal: number | undefined;
/*orderStatus: string | undefined;*/
items: OrderItem[] = [];
}
由於quantity
輸入為number | undefined
number | undefined
item.quantity
可能是undefined
。 嘗試使用item.quantity++
來增加它會導致NaN
,因此不是您在這里所期望的。
為了滿足這里的類型檢查器嘗試檢查item.quantity
不是undefined
:
if (item?.quantity !== undefined) {
item.quantity++;
}
(注意這里使用了可選鏈)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.