【问题标题】:Destructure a function parameter in Typescript在 Typescript 中解构函数参数
【发布时间】:2019-06-28 00:58:23
【问题描述】:

我正在尝试为以下函数的成员提供一个类型。 args 是一个具有data 属性类型为UserCreateInput 的对象

所以,从这里:

createUser(parent: any, args: any, context: any) {
    return context.prisma.createUser(args.data)
}

这是我写的:

createUser(parent: any, args: {data: UserCreateInput}, context: any) {
    return context.prisma.createUser(args.data)
}

我不确定如何替换 createUser(parent: any, xxx, context: any) 中的“xxx”,所以我可以简单地返回 return context.prisma.createUser(data)

【问题讨论】:

    标签: typescript types


    【解决方案1】:

    你可以使用对象解构语法:

    createUser(parent: any, { data }: { data: UserCreateInput }, context: any) {
        return context.prisma.createUser(data)
    }
    

    不幸的是,您需要写两次data。有人向fix 提出建议,但存在一些问题。

    【讨论】:

    • 谢谢!我不介意使用数据两次。我读过关于对象解构的文章,但显然我需要再读一遍......
    • 我认为这很糟糕。我一直在 Javascript 中使用参数解构,现在一切都必须重复,每个人都认为这很正常?没有我见过的语言可以做到这一点!说真的,看看这东西有多丑!
    • 算我在“不可接受”阵营。看起来它正在开发中,但需要很长时间 - github.com/Microsoft/TypeScript/issues/29526
    猜你喜欢
    • 2019-03-07
    • 2023-04-04
    • 2017-06-14
    • 2019-04-19
    • 1970-01-01
    • 1970-01-01
    • 2016-11-26
    • 1970-01-01
    相关资源
    最近更新 更多