Types in object destructuring

前端 未结 4 1272
你的背包
你的背包 2020-11-27 13:40

This

const { foo: IFoo[] } = bar;

and this

const { foo: Array } = bar;

will reasonably cause

4条回答
  •  無奈伤痛
    2020-11-27 14:07

    A follow-up to my own question.

    Types don't need to be specified for object properties because they are inferred from destructured object.

    Considering that bar was typed properly, foo type will be inferred:

    const bar = { foo: [fooValue], ... }; // bar type is { foo: IFoo[], ... }
    ...
    const { foo } = bar; // foo type is IFoo[]
    

    Even if bar wasn't correctly typed (any or unknown), its type can be asserted:

    const { foo } = bar as { foo: IFoo[] }; // foo type is IFoo[]
    

提交回复
热议问题