diff --git a/types/koa-compose/index.d.ts b/types/koa-compose/index.d.ts index f35b9ca208..3658a8fbce 100644 --- a/types/koa-compose/index.d.ts +++ b/types/koa-compose/index.d.ts @@ -1,14 +1,51 @@ // Type definitions for koa-compose 3.2 // Project: https://github.com/koajs/compose // Definitions by: jKey Lu +// Anton Astashov // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped // TypeScript Version: 2.3 import * as Koa from "koa"; -declare function compose( - middleware: [Koa.Middleware, Koa.Middleware] -): Koa.Middleware; +declare function compose( + middleware: [Koa.Middleware, Koa.Middleware] +): Koa.Middleware; + +declare function compose( + middleware: [Koa.Middleware, Koa.Middleware, Koa.Middleware] +): Koa.Middleware; + +declare function compose( + middleware: [Koa.Middleware, Koa.Middleware, Koa.Middleware, Koa.Middleware] +): Koa.Middleware; + +declare function compose( + middleware: [ + Koa.Middleware, Koa.Middleware, Koa.Middleware, Koa.Middleware, + Koa.Middleware + ] +): Koa.Middleware; + +declare function compose( + middleware: [ + Koa.Middleware, Koa.Middleware, Koa.Middleware, Koa.Middleware, + Koa.Middleware, Koa.Middleware + ] +): Koa.Middleware; + +declare function compose( + middleware: [ + Koa.Middleware, Koa.Middleware, Koa.Middleware, Koa.Middleware, + Koa.Middleware, Koa.Middleware, Koa.Middleware + ] +): Koa.Middleware; + +declare function compose( + middleware: [ + Koa.Middleware, Koa.Middleware, Koa.Middleware, Koa.Middleware, + Koa.Middleware, Koa.Middleware, Koa.Middleware, Koa.Middleware + ] +): Koa.Middleware; declare function compose(middleware: Array>): compose.ComposedMiddleware; diff --git a/types/koa-compose/koa-compose-tests.ts b/types/koa-compose/koa-compose-tests.ts index 56b105e900..9b2ded25c4 100644 --- a/types/koa-compose/koa-compose-tests.ts +++ b/types/koa-compose/koa-compose-tests.ts @@ -49,3 +49,13 @@ new Koa<{}, {}>() ctx.body = "Something"; await next(); }); + +new Koa<{}, {}>() + .use(compose([fooMiddleware, barMiddleware, wooMiddleware])) + .use(async (ctx, next) => { + ctx.state.foo; + ctx.state.bar; + ctx.state.woo; + ctx.body = "Something"; + await next(); + });