类型“ GraphQLError”上不存在属性“状态”

时间:2019-11-18 07:35:11

标签: typescript

我仍然试图理解打字稿并移动我的JS代码打字稿代码。

在JS中,我有类似的内容

graphEndpointHandler(graphSchema) {
        return (req: Request, res:Response) => {
            return graphqlHTTP({
                schema: graphSchema,
                context: { req, res },
                graphiql: true,
                customFormatErrorFn: error => {
                    const errorFormatter = {}
                    console.error(error)
                    const { message, status } = error
                    errorFormatter.message = message || 'internal server error'
                    errorFormatter.status = status || 'Location not defined'
                    // These afe errors which we aren't expecting
                    return {
                        code: errorFormatter.status || 500,
                        message: errorFormatter.message,
                        locations: error.locations,
                        stack: error.stack ? error.stack.split('\n') : [],
                        path: error.path || 'Path not defined'
                    }
                }
            })(req, res)
        }
    }

在此部分const { message, status } = error,我遇到以下错误

类型“ GraphQLError”上不存在属性“状态”

有人可以帮助我弄清楚如何解决该问题吗?

1 个答案:

答案 0 :(得分:0)

错误消息正确:StrokesCollectedas the .d.ts file tells us类型的属性status不存在,因此会出错。

在您的代码之后,似乎GraphQLErrormessage为空时,您正在尝试设置默认值。

希望,有一个更干净的替代方法可以解决您的两个问题:在解构表达式中设置默认值:

status

您可以阅读有关语法here的更多信息。