mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2026-10-07 08:17:05 +00:00
Explicitly specify Koa.Middleware params
This way we explicitly state `koa-static` doesn't add anything to Koa's `ctx`
or `ctx.state`.
It's useful because with those changes it won't erase `ctx.state` type,
converting it into `any`. Like, if we have some middleware:
```ts
import Koa from 'koa';
type FooCtx = { foo: string };
const someMiddleware: Koa.Middleware<FooCtx, {}> = (ctx, next) => {
ctx.state.foo = "foo";
}
```
Before the changes in this PR it would be:
```ts
const app = new Koa<{}, {}>()
.use(someMiddleware)
.use(koaStatic("."))
// app is Koa<any, {}>
```
After the changes in this PR:
```ts
const app = new Koa<{}, {}>()
.use(someMiddleware)
.use(koaStatic("."))
// app is Koa<FooCtx, {}>
```
This commit is contained in:
Vendored
+1
-1
@@ -19,7 +19,7 @@ import { Middleware } from "koa";
|
||||
|
||||
import { SendOptions } from "koa-send";
|
||||
|
||||
declare function serve(root: string, opts?: serve.Options): Middleware;
|
||||
declare function serve(root: string, opts?: serve.Options): Middleware<{}>;
|
||||
|
||||
declare namespace serve {
|
||||
interface Options extends SendOptions {
|
||||
|
||||
Reference in New Issue
Block a user