2025-03-28
2755
#node#typescript
Aman Mittal
22050
116
Mar 28, 2025 β‹… 9 min read

How to set up TypeScript with Node.js and Express

Aman Mittal πŸ‘¨β€πŸ’» Developer πŸ‘‰ Node.js, React, React Native | Tech Blogger with 1M+ views on Medium

Recent posts:

next js environmental variables

How to configure Next.js environmental variables

Learn how to manage environment variables in Next.js, which influence how an application behaves in different contexts and environments.

Joseph Mawa
Apr 25, 2025 β‹… 9 min read
useActionState in React

useActionState in React: A practical guide with examples

Discover how React’s useActionState Hook makes it easier to handle user actions, especially form submissions and async state changes.

Rishi Purwar
Apr 25, 2025 β‹… 5 min read
three js vs babylon js

Three.js vs. Babylon.js: Which is better for 3D web development?

Compare two libraries that support creating 3D experiences in the browser. Learn how to get started with each, their core features, and key differences.

Elijah Asaolu
Apr 24, 2025 β‹… 7 min read
how to use the Next.js Image component to optimize images

How to use the Next.js Image component to optimize images

Explore automatic image optimization using Next Image, the built-in image optimization solution for Next.js.

Adebiyi Adedotun
Apr 23, 2025 β‹… 7 min read
View all posts

47 Replies to "How to set up TypeScript with Node.js and Express"

  1. What’s the best command setup for deploying and running something like this in production? There are now compiled JS files in build/, but other files (e.g., package.json, static HTML, etc.) are all in their original locations. And, we haven’t created a script in package.json to run the built app.

  2. okayy,, then how can i use other plugin to work with my express typescript. am i should install plugin that support in typescript or not ?

  3. Choose any middleware you need, but make sure DefinitelyTyped has the corresponding Typescript @types/* mappings available. Most popular NodeJS middleware packages are supported in the DefinitelyTyped project.

    1. Hey, if you are running localhost, you do not require “https” until you want to intentionally use HTTPS.

    1. In the article above, the “outDir” is referring to the config option. The “./dist” is the value.

      Are you referring to something specific? Can you please point me to that?

    1. The `main` poperty in the `package.json` indicates the entry point and it should point out to Javascript compiled output. So it should be “main”:”dist/index.js” as we are using typescript here, if it was just just Javascript we can just use the index.js.

      1. Thanks. Ok just so everyone is 100% clear. package.json should be changed to:
        “main”: “dist/index.js”,

  4. Excellent tutorial! One minor note is that the protocol should not be `https` since express is not secure by default, e.g, this line should be changed to just `http` — `console.log(`⚑️[server]: Server is running at http://localhost:${port}`)`

  5. had to remove “module”: “commonjs” from tsconfig.js as the error “ReferenceError: exports is not defined in ES module scope”

  6. anyone has a sample github repo for this? please include an example repo so we know where to place the files at. im guessing all the files should be in an dist folder?

  7. This is an excellent article that helped me complete what I sought out to do. I have one suggestion, where there is a suggestion to update nodemon.json with this script:
    {
    “watch”: [“src”],
    “ext”: “ts”,
    “exec”: “concurrently \”npx tsc –watch\” \”ts-node src/index.ts\””
    },
    I would have found it helpful to add a comment about installing concurrently. It was suggested earlier in the article but not in the same general vicinity of the nodemon.json change.

  8. Right after Running TypeScript in Node with ts-node
    if you face errors modules not found like dotenv or express you need to install again them and add to types: npm install dotenv; npm install @types/dotenv –save-dev and
    npm install express; npm install @types/express –safe-dev

  9. Supplement:
    Update nodemon.json for alias path as follows:
    “exec”: “concurrently \”npx tsc –watch\” \”ts-node -r tsconfig-paths/register src/index.ts\””

    1. Hey there! David supplied an explanation for this above. Take a look, and let us know if you have any questions.

  10. Hi, i have an error with the line “exec”: “concurrently \”tsc –watch \” \”ts-node src/index.ts\”” in the nodemon.json file, when remove this line the comand “pnpm dev” running successfully but when this line is present, catch the error “Cannot find module”

    1. Hello! I asked David about this, and he said this is usually caused by packages whose type definitions are not included in the base package and must be installed separately. Most packages include their type definitions by default, so you’re likely using an older version of those packages. Best of luck!

  11. I needed to remove the single quotes around ts-node in the scripts->dev in packages.json.
    here is the line that worked for me:
    “dev”: “nodemon –watch ‘src/**/*.ts’ –exec ts-node src/server.ts”,

Leave a Reply