在Typescript中转换函数参数对象属性

时间:2018-05-20 02:34:00

标签: typescript

我有一个看起来像这样的函数:

getShopItems: async (parent, { payload }, ctx: Context, info) => { ... }

有没有办法转换第二个参数的payload属性?我想做这样的事情,例如:

getShopItems: async (parent, { payload: ItemSearchPayload }, ctx: Context, info) => { ... }

我知道我可以通过命名对象并将其投射到某个东西来修复此问题,la:

interface Args {
  payload: ItemSearchPayload;
}

getShopItems: async (parent, args: Args, ctx: Context, info) => { ... }

在这种情况下,我会得到预期的打字,但我希望有一个快捷方式,因为我有很多这样的功能,我宁愿不必创建一堆接口只是在这样的一个例子中使用它们。

1 个答案:

答案 0 :(得分:1)

您可以输入内联的destructed参数:

getShopItems: async (
    parent,
    { payload }: { payload: ItemSearchPayload },
    ctx: Context, info
) => {
    // ...
}