1.0 1.0 -4 years ago 290
TypeScript Question

how to declare typescript interface extension to node request session object?

In the following,

is added to the session object by my passport methods. How do I declare its interface in typescript?

import express = require('express');
import expressSession = require('express-session');

// how to declare presence of returnTo, which is not in underlying type?

export function createSession(req: express.Request, res: express.Response, next: Function) {

passport.authenticate('local', (err: any, user: UserInstance, info: any) => {
//. . .
req.logIn(user, (err) => {
//. . .
res.redirect(req.session.returnTo || '/');
})(req, res, next);

Answer Source

There's a type declaration for express-session on DefinitelyTyped:


Following the pattern in that file, you can create a new d.ts (call it whatever you want) containing:

declare module Express {
  export interface Session {
    returnTo: string;

TypeScript will "merge" this extra property into the existing definitions.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download