# @types/koa-compose

> TypeScript definitions for koa-compose

Latest version **3.2.9** (published 2025-10-24) · MIT license · 3.4M weekly downloads

## Install

```sh
npm install @types/koa-compose
pnpm add @types/koa-compose
yarn add @types/koa-compose
bun add @types/koa-compose
```

## Health

**Score 85/100 (A)** — status: stable.

Positive: high downloads; has types; no vulnerabilities; high maintenance score; popular repo; extremely popular.

Warnings: no esm support.

## Facts

| | |
|---|---|
| Version | 3.2.9 |
| Published | 2025-10-24 |
| First published | 2016-05-17 |
| Weekly downloads | 3.4M |
| License | MIT |
| TypeScript types | bundled |
| Module format | CommonJS |
| Dependencies | 1 |
| Unpacked size | 7.6 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 51435 |
| Maintainers | types |

## Links

- npm: https://www.npmjs.com/package/@types/koa-compose
- Repository: https://github.com/DefinitelyTyped/DefinitelyTyped
- Homepage: https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/koa-compose
- npm.io page: https://npm.io/package/@types/koa-compose

## Dependencies (1)

- [@types/koa](https://npm.io/package/@types/koa.md) *

## Recent versions

- 3.2.9 (latest) — 2025-10-24
- 3.2.8 (ts5.1) — 2023-11-07
- 3.2.5 (ts3.7) — 2019-11-07
- 3.2.4 (ts2.6) — 2019-05-22
- 3.2.2 (ts2.2) — 2017-03-27
- 3.2.7 — 2023-10-18
- 3.2.6 — 2023-09-14
- 3.2.3 — 2019-02-08
- 3.2.1 — 2017-03-22
- 3.2.0 — 2017-01-05
- 3.0.30 — 2016-09-19
- 3.0.29 — 2016-07-19
- 3.0.28 — 2016-07-14
- 3.0.27-alpha — 2016-07-08
- 3.0.26-alpha — 2016-07-04
- … 7 more at https://npm.io/package/@types/koa-compose/versions

## README

# Installation
> `npm install --save @types/koa-compose`

# Summary
This package contains type definitions for koa-compose (https://github.com/koajs/compose).

# Details
Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/koa-compose.
## [index.d.ts](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/koa-compose/index.d.ts)
````ts
import Koa = require("koa");

declare function compose<T1, U1, T2, U2>(
    middleware: [Koa.Middleware<T1, U1>, Koa.Middleware<T2, U2>],
): Koa.Middleware<T1 & T2, U1 & U2>;

declare function compose<T1, U1, T2, U2, T3, U3>(
    middleware: [Koa.Middleware<T1, U1>, Koa.Middleware<T2, U2>, Koa.Middleware<T3, U3>],
): Koa.Middleware<T1 & T2 & T3, U1 & U2 & U3>;

declare function compose<T1, U1, T2, U2, T3, U3, T4, U4>(
    middleware: [Koa.Middleware<T1, U1>, Koa.Middleware<T2, U2>, Koa.Middleware<T3, U3>, Koa.Middleware<T4, U4>],
): Koa.Middleware<T1 & T2 & T3 & T4, U1 & U2 & U3 & U4>;

declare function compose<T1, U1, T2, U2, T3, U3, T4, U4, T5, U5>(
    middleware: [
        Koa.Middleware<T1, U1>,
        Koa.Middleware<T2, U2>,
        Koa.Middleware<T3, U3>,
        Koa.Middleware<T4, U4>,
        Koa.Middleware<T5, U5>,
    ],
): Koa.Middleware<T1 & T2 & T3 & T4 & T5, U1 & U2 & U3 & U4 & U5>;

declare function compose<T1, U1, T2, U2, T3, U3, T4, U4, T5, U5, T6, U6>(
    middleware: [
        Koa.Middleware<T1, U1>,
        Koa.Middleware<T2, U2>,
        Koa.Middleware<T3, U3>,
        Koa.Middleware<T4, U4>,
        Koa.Middleware<T5, U5>,
        Koa.Middleware<T6, U6>,
    ],
): Koa.Middleware<T1 & T2 & T3 & T4 & T5 & T6, U1 & U2 & U3 & U4 & U5 & U6>;

declare function compose<T1, U1, T2, U2, T3, U3, T4, U4, T5, U5, T6, U6, T7, U7>(
    middleware: [
        Koa.Middleware<T1, U1>,
        Koa.Middleware<T2, U2>,
        Koa.Middleware<T3, U3>,
        Koa.Middleware<T4, U4>,
        Koa.Middleware<T5, U5>,
        Koa.Middleware<T6, U6>,
        Koa.Middleware<T7, U7>,
    ],
): Koa.Middleware<T1 & T2 & T3 & T4 & T5 & T6 & T7, U1 & U2 & U3 & U4 & U5 & U6 & U7>;

declare function compose<T1, U1, T2, U2, T3, U3, T4, U4, T5, U5, T6, U6, T7, U7, T8, U8>(
    middleware: [
        Koa.Middleware<T1, U1>,
        Koa.Middleware<T2, U2>,
        Koa.Middleware<T3, U3>,
        Koa.Middleware<T4, U4>,
        Koa.Middleware<T5, U5>,
        Koa.Middleware<T6, U6>,
        Koa.Middleware<T7, U7>,
        Koa.Middleware<T8, U8>,
    ],
): Koa.Middleware<T1 & T2 & T3 & T4 & T5 & T6 & T7 & T8, U1 & U2 & U3 & U4 & U5 & U6 & U7 & U8>;

declare function compose<T>(middleware: Array<compose.Middleware<T>>): compose.ComposedMiddleware<T>;

declare namespace compose {
    type Middleware<T> = (context: T, next: Koa.Next) => any;
    type ComposedMiddleware<T> = (context: T, next?: Koa.Next) => Promise<void>;
}

export = compose;

````

### Additional Details
 * Last updated: Fri, 24 Oct 2025 04:02:41 GMT
 * Dependencies: [@types/koa](https://npmjs.com/package/@types/koa)

# Credits
These definitions were written by [jKey Lu](https://github.com/jkeylu), and [Anton Astashov](https://github.com/astashov).

---
_Source: https://npm.io/package/@types/koa-compose · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
