Déclarer et initialiser un Dictionnaire en caractères d'imprimerie

Donné le code suivant

interface IPerson {
   firstName: string;
   lastName: string;
}

var persons: { [id: string]: IPerson; } = {
   "p1": { firstName: "F1", lastName: "L1" },
   "p2": { firstName: "F2" }
};

Pourquoi n'est-ce pas l'initialisation rejeté? Après tout, le deuxième objet n'ont pas le "nom" de la propriété.

  • Remarque: cela a depuis été corrigé (pas sûr de l'exacte TS version). J'obtiens ces erreurs dans VS, comme vous le souhaitez: Index signatures are incompatible. Type '{ firstName: string; }' is not assignable to type 'IPerson'. Property 'lastName' is missing in type '{ firstName: string; }'.
InformationsquelleAutor mgs | 2013-04-08