Cette
const { foo: IFoo[] } = bar;
et ça
const { foo: Array<IFoo> } = bar;
causera raisonnablement une erreur.
Et ça
const { foo: TFoo } = bar;
va simplement détruire la propriété TFoo
.
Comment les types peuvent-ils être spécifiés pour les propriétés d'objet déstructuré?
Il s'avère qu'il est possible de spécifier le type après :
pour tout le schéma de déstructuration:
const {foo}: {foo: IFoo[]} = bar;
Ce qui en réalité n’est pas meilleur que le vieux vieux
const foo: IFoo[] = bar.foo;
Je suis clairement un peu en retard à la fête, mais:
interface User {
name: string;
age: number;
}
const obj: any = { name: 'Johnny', age: 25 };
const { name, age }: User = obj;
Les types de propriétés name
et age
doivent être correctement inférés à string
et number
respectivement.