Strapi 上下文打字稿

问题描述 投票:0回答:1

我正在使用 Strapi 和 TypeScript 开发一个应用程序。我想知道

ctx
参数的正确类型是什么,例如传递给中间件或控制器?

这里提到我们可以使用import { Context } from "koa";

来为
ctx
提供类型。

但是这样做时我遇到了很多 TypeScript 错误,例如这里:

// path: ./src/api/[api-name]/middlewares/my-middleware.ts export default async (ctx: Context, next: () => Promise<any>) => { const newName = ctx.request.body.name; if (!newName) { return ctx.badRequest('name is missing', { foo: 'bar' }) } await next(); }
我会收到一个错误,

ctx.badRequest

似乎只需要一个参数,即使这个示例取自
官方 Strapi 文档

typescript strapi koa
1个回答
0
投票
虽然很奇怪,但深入研究类型文件,发现 Context 是从

koa

 导入的,我可以像这样使用它:

import { Context, Next } from 'koa'; export default { exampleAction: async (ctx: Context, next: Next): Promise<void> => { try { ctx.body = 'ok'; next(); } catch (err) { ctx.body = err; } } };
    
© www.soinside.com 2019 - 2024. All rights reserved.