我已经说明了我从服务器操作获取的数据的类型,但我收到一条错误,指出它不能分配给从未分配过的类型,
type Package = {
productName: string;
};
type BuddyShield = {
remarks: string | null;
buddyShieldUploadProof: boolean;
rtoStarted: Date | null;
};
type User = {
fullname: string;
};
export type OrderSecondSchema = {
id: number;
awbNumber: string | null;
ChannelOrder_Id: string | null;
deliveryPartner: string | null;
shippingDate: Date;
status: OrderStatus;
Packages: Package[];
buddyShield: BuddyShield | null;
Users: User;
};
export type OrderQueryResult = OrderSecondSchema[];
export async function getFilteredOrders(filters: OrderFilters) {
const { startDate, endDate, partner, page, searchQuery } = filters;
const itemsPerPage = 10;
const skip = (page - 1) * itemsPerPage;
const userIdString = getCurrentUser();
> userIdString, gets the string id.
const whereClause: any = {
status: {
in: ['RTO_IN_TRANSIT', 'RTO_DELIVERED']
}
}
whereClause.usersId = userIdString
const allOrders : OrderQueryResult = await prisma.orders.findMany({
where: whereClause,
select: {
id: true,
awbNumber: true,
ChannelOrder_Id: true,
deliveryPartner: true,
shippingDate: true,
status: true,
Packages : {
select: {
productName: true,
}
},
buddyShield : {
select: {
remarks: true,
buddyShieldUploadProof: true,
rtoStarted: true,
}
},
Users: {
select: {
fullname: true,
}
},
}
});
// console.log('Line 81 ', allOrders);
// Apply date and partner filters
console.log('Line 122 startdate ', startDate, ' enddate ', endDate);
let filteredOrders = allOrders.filter((order) => {
const orderDate = new Date(order.shippingDate);
const dateFilter =
(!startDate || orderDate >= new Date(startDate)) &&
(!endDate || orderDate <= new Date(endDate));
const partnerFilter =
partner === "All" ||
(order.deliveryPartner?.toLowerCase() ?? "") === partner.toLowerCase();
return dateFilter && partnerFilter;
});
// Apply fuzzy search if searchQuery is provided
if (searchQuery) {
console.log('Line 137 ', searchQuery);
const fuse = new Fuse(filteredOrders, {
keys: ['awbNumber'],
threshold: 0.3,
});
filteredOrders = fuse.search(searchQuery).map(result => result.item);
console.log('Fuse Search ', filteredOrders);
}
const totalOrders = filteredOrders.length;
const totalPages = Math.ceil(totalOrders / itemsPerPage);
// Apply pagination
filteredOrders = filteredOrders.slice(skip, skip + itemsPerPage);
return {
orders: filteredOrders,
totalPages,
currentPage: page,
totalOrders,
};
}
我尝试分配类型,说明它将返回什么,尝试检查发生错误的行号,看看是否是类型问题,但无法修复它。
我在服务器操作 BuddyShield 和 HighShipping 中遇到了这个问题。我有两个文件夹 BuddyShield 和 HighShipping,其中有文件 page.tsx,问题是不要将服务器操作中的文件名保留为 page.tsx,您将收到类型错误,只需将其命名为其他名称即可