Использование koa-views с TypeScript - PullRequest
1 голос
/ 04 февраля 2020

Я пытался использовать koa-views в качестве средства визуализации, но продолжал получать сообщение от TS:

Property 'render' does not exist on type 'ParameterizedContext<any, IRouterParamContext<any, {}>>'.ts(2339)

Мое приложение. js

import Koa from "Koa";
import views from "koa-views";
import indexRouter from "./routes/index"

const app = new Koa();

app.use(views(`${__dirname}/views`, { autoRender: true, extension: "swig" }));
app.use(indexRouter.routes());

index. js - IndexRouter:

import Router from "koa-router";
const router = new Router();

router.get("/", async (ctx, next) => {
  ctx.render(); // not done yet tho
  await next();
})

export = router;

1 Ответ

1 голос
/ 04 февраля 2020

Это потому, что аргумент ctx тип не имеет метода render () , но в типах lib @ types / koa-views объявлен модуль (см. https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/koa-views/index.d.ts#L55 ).

И вы можете сделать это:

import { Context, DefaultState } from "koa";
import * as Router from "koa-router";

const router = new Router<DefaultState, Context>();

router.get("/", async (ctx: Context, next) => {
    await ctx.render("/path/");
    await next();
});
...