类型 never 不可分配给 Promise 数组、布尔值和错误作为值

问题描述 投票:0回答:1

我已经说明了我从服务器操作获取的数据的类型,但我收到一条错误,指出它不能分配给从未分配过的类型,

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,
    };
  }

我尝试分配类型,说明它将返回什么,尝试检查发生错误的行号,看看是否是类型问题,但无法修复它。

typescript next.js
1个回答
0
投票

我在服务器操作 BuddyShield 和 HighShipping 中遇到了这个问题。我有两个文件夹 BuddyShield 和 HighShipping,其中有文件 page.tsx,问题是不要将服务器操作中的文件名保留为 page.tsx,您将收到类型错误,只需将其命名为其他名称即可

© www.soinside.com 2019 - 2024. All rights reserved.