Here’s how to start express with TypeScript.

Default Package Settings

Create a package.json file.

npm init -y

Install the packages required for express.

yarn add express body-parser

Typescript setting

Install the package for typescript.

yarn add --dev typescript ts-loader ts-node tslint @types/node @types/express

Install necessary information for typescript. And enter the tsconfig.json file as shown below.

  "compilerOptions": {
    "target": "es6",
    "module": "commonjs",
    "moduleResolution": "node"
  "exclude": [

Webpack configuration

yarn add --dev webpack webpack-watch-server

Enter the webpack.config.js file as shown below.

var path = require('path');

module.exports = {
  output: {
    path: path.resolve(__dirname,'dist')
  resolve: {
    // Add `.ts` and `.tsx` as a resolvable extension.
    extensions: ['.ts','.tsx','.js']
  module: {
    rules: [
      // all files with a `.ts` or `.tsx` extension will be handled by `ts-loader`
      {test: /\.tsx?$/, loader:'ts-loader'}

Express Basic Production

Write the src/index.ts file as shown below.

import * as bodyParser from "body-parser";
import * as express from "express";
import {Request, Response} from "express";
import * as http from'http';

var app:express.Application = express();

app.get('/', (req: Request, res: Response) => {
  res.status(200).json({status: "ok"});

let httpPort = 3000;
app.set("port", httpPort);
var httpServer = http.createServer(app);

//listen on provided ports
httpServer.listen(httpPort, (data) => {
  console.log(`Listening on port ${httpPort}`)