web-dev-qa-db-fra.com

comment déclarez-vous un tableau d'objets à l'intérieur du tapuscrit?

Je voudrais spécifier que la fonction prend un tableau d'objets comme paramètre, mais je n'ai pas de type particulier défini pour l'objet (sorte de "type anonyme")

bagTotal = (products) => {
 // function does stuff
}

Je comprends que je peux le faire:

bagTotal = (products: any[]) => {
 // function does stuff
}

mais c'est un peu plus détendu que ce que je veux: être strict avec mon TypeScript.

products est un tableau d'objets de même apparence comme tous les objets ont un nom, un prix, une description.

comment puis-je le déclarer?

Je veux faire quelque chose comme

bagTotal = (products: [{name: string, price: number, description: string}]) => {
 // function does stuff
}

mais ce n'est pas vrai. Comment puis-je le déclarer?

5
Red Baron

Si vous déclarez un tableau d'un objet spécifique et que vous souhaitez spécifier le type des variables dans les objets, je créerais une classe pour l'objet comme ceci:

class Item(){
    name: string;
    description: string;
    etc: any

  constructor() {
    this.name;
    this.description;
    this.etc;
}}

Ensuite, vous pouvez spécifier le tableau comme un tableau d'objets d'élément:

itemArray: Array<Item>;
0
Sockness_Rogers