Closed MisterJimson closed 2 years ago
I have a same probleme ....
My version of Deno is v1.10.1
Adding the following in the scope where ctx.render(...)
is used solved it for me:
import { ViewConfig } from "https://deno.land/x/view_engine@v1.5.0/mod.ts";
declare module "https://deno.land/x/oak@v7.5.0/mod.ts" {
interface Context {
render: (fileName: string, data?: object) => void;
}
interface RouterContext {
render: (fileName: string, data?: object) => void;
}
interface Application {
view: ViewConfig;
}
}
...
router.get("/", async (ctx) => {
ctx.render(...);
});
Notice specific oak version in the module string: declare module "https://deno.land/x/oak@<oak version>/mod.ts" {
@mtso's fix worked for me for Oak v10.2.0 with the change that RouterContext now accepts a type argument that must be matched:
interface RouterContext<R extends string> {
render: (fileName: string, data?: object) => void;
}
Please check out the newest version, thanks!
When Oak 7.4.0 is used, the render method cannot be found.
Error: Property 'render' does not exist on type 'RouterContext<RouteParams, Record<string, any>>'.