pdfmake, TypeError: Cannot assign to read only property '0' of string

pdfmake, TypeError: Cannot assign to read only property '0' of string

我正在尝试使用带有 Angular 的 pdfMake 创建 PDF。

我尝试用数组中的数据填充 Html table。这是一个对象数组。

export interface OrderDetails {
    orderId?   : number;
    truckMenuId: number;
    price?     : number;
    quantity   : number;
    truckMenu?  : TruckMenu;
    title?: string;
}

下面的方法要求一个 OrderDetails 数组作为参数。


  public generatePDF(truck: Truck, orderItems: OrderDetails[]) { 
    let rows: string[] = ['Price', 'Quantity'];
    orderItems.forEach((item) => {
      var lign = [item.price, item.quantity];
      rows.push(<string><unknown>lign);
    })  
   
    let docDefinition = {
      content: [
       {  
            text: truck.name,  
            fontSize: 20,  
            alignment: 'center',  
            color: '#FF4F02',
            margin: [0, 20],
          },  
          {  
            text: 'Facture',  
            fontSize: 14,  
            bold: true,  
            alignment: 'Left',  
            decoration: 'underline',  
            color: '#000',
            margin: [0, 20]
         },
          {
          table: {
                   widths: ['*', 70, 50],
                   body: rows
                }
              },
               {
                   text: 'Total : ',
                   fontSize: 14,
                   alignment: 'right',
                   margin: [140,20]
               },
               {
                   text: 'Thanks',
                   fontSize: 12,
                   margin: [0,20]
               }
      ],
    }  
    pdfMake.createPdf(docDefinition).open();  
  }   

如您所见,我使用 forEach 循环进入数组并显示数据。

我的问题是收到一条错误消息,但我不明白为什么。

TypeError: Cannot assign to read only property '0' of string 'Price'

我发现了相同的错误消息 但这并没有解决我的问题。

怎么了?

我终于找到了解决方案。

我通过 any[] 更改行类型并推送如下元素:

...
  
var rows: any[] = [];
rows.push(['Plats', 'Prix unitaire', 'Quantité']);

orderItems.forEach((item) => {
    rows.push([item.title, item.price, item.quantity]);
}) 
...