首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Fastify Typescript请求查询

Fastify Typescript请求查询
EN

Stack Overflow用户
提问于 2021-04-28 02:38:41
回答 1查看 1.5K关注 0票数 3

我正在尝试按照下面的Fastify和Typescript文档构建一个简单的端点:

https://www.fastify.io/docs/v3.1.x/TypeScript/

代码语言:javascript
复制
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对象时,为什么会出现该错误?我该如何修复它?

EN

回答 1

Stack Overflow用户

发布于 2021-07-08 22:26:33

默认情况下,FastifyRequest.query的类型RequestQuerystringDefault映射到unknown,因为您无法猜测您想要为它设置哪些属性/类型。

如果您为某些请求的query定义了类型,只需定义该request type并使用它:

代码语言:javascript
复制
type MyRequest = FastifyRequest<{
  Querystring: { queryObj: MyQueryObject }
}>

然后将其指定为预期的请求类型:

代码语言:javascript
复制
 async (request: MyRequest, reply: FastifyReply) => {
   const { queryObj } = request.query // Ok
 }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67288886

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档