我尝试在Fastify with 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
对象时会出现错误?如何修复它?
2条答案
按热度按时间eqqqjvef1#
默认情况下,
FastifyRequest.query
的类型RequestQuerystringDefault
Map到unknown
,因为人们无法猜测您将为其设置哪些属性/类型。如果您已经为某个请求的
query
定义了一个类型,那么只需定义该请求类型并使用它:然后将其指定为预期的请求类型:
g9icjywg2#
如果您编写的代码看起来像Express.js,请尝试以下代码: