Types in object destructuring


const { foo: IFoo[] } = bar;

and this

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

will reasonably cause an error.

And this

const { foo: TFoo } = bar;

will just destructure TFoo property.

How can types be specified for destructured object properties?


  • It turns out it's possible to specify the type after : for the whole destructuring pattern:

    const {foo}: {foo: IFoo[]} = bar;

    Which in reality is not any better than plain old

    const foo: IFoo[] = bar.foo;