我仍然试图理解打字稿并移动我的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”上不存在属性“状态”
有人可以帮助我弄清楚如何解决该问题吗?
答案 0 :(得分:0)
错误消息正确:StrokesCollected
,as the .d.ts
file tells us类型的属性status
不存在,因此会出错。
在您的代码之后,似乎GraphQLError
和message
为空时,您正在尝试设置默认值。
希望,有一个更干净的替代方法可以解决您的两个问题:在解构表达式中设置默认值:
status
您可以阅读有关语法here的更多信息。