Typen in der Objektdestrukturierung

Die

const { foo: IFoo[] } = bar;

und da

const { foo: Array<IFoo> } = bar;

wird vernünftigerweise einen Fehler verursachen.

Und da

const { foo: TFoo } = bar;

wird nur destrukturierenTFoo Eigentum

Wie können Typen für Eigenschaften destrukturierter Objekte angegeben werden?