Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

140
Views
Is there a way to return express instances in TypeScript classes?

I'm trying to create the express server for my project in an external module. Everything works fine until I try to do something with the app object in my main file.

server.ts:

import express from "express";
import OutputLevel from "../types/OutputLevels";

class Server {
    /**
     * Creates an express web server
     * @param {Number} port The port the server is listening on
     * @param {OutputLevel} [outputLevel] The level of console output (commonly based on CLI arguments) {@link OutputLevel}
     * @returns {Express}
     */
    constructor(port: Number, outputLevel?: OutputLevel) {
        const app = express();
        app.listen(port, () => {
            if (outputLevel && outputLevel >= 2) console.log(`[Server @ ${port}] Listening @ http://localhost:${port}`);
        });
        return app;
    }
}

export default Server;

index.ts:

import Server from "./server/server";
import OutputLevel from "./types/OutputLevels";

let app = new Server(2020, OutputLevel.INFO);

app.get("/", (req, res) => {
    res.send("hello world")
});

The get part gets marked as an error by intellisense with the note Property 'get' does not exist on type 'Server'.. Maybe this has something to do with me using classes and constructors instead of functions, but I'm trying to use a class here.

about 4 years ago · Juan Pablo Isaza
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!