51 votes

Comment initialiser un objet en TypeScript

J'ai une classe modèle simple

export interface Category {

  name: string;
  description: string;

}

Je dois déclarer et initialiser une variable dans un composant angulaire. J'ai essayé :

category: Category = {};

Erreur : {} n'est pas assignable à une catégorie

category: Category = new Category();

erreur : La catégorie fait référence à un type, mais elle est référencée comme valeur

Des suggestions ?

2voto

Subhashis Pal Points 21

Si vous avez déjà une classe et que vous voulez créer une nouvelle instance et initialiser les propriétés en même temps, vous pouvez essayer ceci

return Object.assign(new Person(), {
    name:"Your Name"
});

2voto

moto Points 152
export interface Category {
  name: string;
  description: string;
}

category = {} as Category ;

Edit : J'ai voulu mettre le commentaire ci-dessous dans la réponse pour que les gens sachent pourquoi ma réponse est fausse. J'ai supposé que vous assigneriez toujours juste après, mais ce n'est pas une bonne supposition à faire.

Maintenant, vous avez un objet dans votre système qui est supposé être d'un certain type, mais avec certaines propriétés requises manquantes. c'est juste un mauvais conseil qui cause des erreurs quelque part sur la ligne.

0 votes

Maintenant, vous avez un objet dans votre système qui est supposé être d'un certain type, mais avec certaines propriétés requises manquantes. c'est juste un mauvais conseil qui cause des erreurs quelque part sur la ligne.

0voto

nightingale2k1 Points 3602
interface Person{
    id: number; 
    name: string;
}

let x: Person = {
    id : 0,
    name :"JOHN"
};

alert(x.name);

0voto

Nikolaev Points 1

Vous pouvez utiliser Record également.

{
    category: Record<string, string>;
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X