【发布时间】:2021-04-27 18:38:40
【问题描述】:
我正在尝试按照这里的 Fastify 和 Typescript 文档整理一个简单的端点:
https://www.fastify.io/docs/v3.1.x/TypeScript/
export default async function foo(fastify: any) {
const MyInstance = new Foo(fastify.db);
app.get<{ Querystring: IQueryString, Headers: IHeaders }>(
"/foo",
async (request: FastifyRequest, reply: FastifyReply) => {
console.log(request.query); // *prints query object*
const { queryObj } = request.query; // *Gives error: Object is of type 'unknown'*
const result = await MyInstance.getFoo(queryObj);
reply.status(200).send(result);
}
);
}
为什么我在尝试访问 request.query 对象时收到错误,我该如何解决?
【问题讨论】:
-
永远不要注释内联回调参数的类型。相反,使用类型推断。那是
async (request, reply) =>而不是async (request: FastifyRequest, reply: FastifyReply) =>。注意:您链接的文档中的示例正确地做到了这一点 -
修复了错误。但是,类型推断似乎不适用于
async(request, reply)。我对request和reply没有任何暗示。 -
@AluanHaddad 永远不要说永远。
标签: node.js typescript fastify