'Angular casting http get response but not nested property

I am returning a list of products of type ListProd in my Spring Boot controller, and such object has a nested property of type List<Product> ... something like this:

public class Product implements Serializable {
      int codProdct;
      String dsc;
      
      public Product(){};
      
      // plus getters and setters (omitted for simplicity)
}

public class ListProd implements Serializable {
      int codList;
      List<Product> products;

      public ListProd(){};

      // also here getters and setters
}

and in my angular project I have the next analogoust entities:

export class Product {
    public codProduct:number;
    public dsc:string;

    constructor(){ 
           codProduct=null;   //just for completness
           dsc='';
    }
}

export class ListProd {
    public codList:number;
    public products:Product[];
    
    constructor(){
        this.codList=null;   //just for completness
        this.products=null;
    }
}

I'm sending a ListProd object through my Spring controller and Angular gets such an object correctly and assigns the type also correctly:

return this.http.get<ListProd>(this.apiUrl + "/getListProds", httpOptions);

but ... it is only casting correctly the parent object, when I check the type of the 'products' object (which is recived correctly, only untyped) y get type: Object

I tried to make it a Products[] in my ListProd class in java, but i get the same result. I don't know much about the 'magic' Angular does to assign those types properly, am I missing something important here? Is there a chance to force the casting on the Angular side?

Thanks in advance.



Solution 1:[1]

Well, if ListProd is supposed to hold array of Product[] there is a typo here.

 public products:Product[];

Not knowing full extent why you use class over an interface I would advise you also to go over this. Maybe there is a reason but for being able to strong type simple interface would be better. https://www.javatpoint.com/typescript-class-vs-interface

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Joosep Parts