Introduction
TypeScript is a strongly typed superset of JavaScript that compiles to plain JavaScript. Using TypeScript in Node.js improves code quality and maintainability. This guide will walk you through setting up a Node.js project with TypeScript.
Prerequisites
Ensure you have the following installed:
- Node.js (Download from nodejs.org)
- npm or yarn (npm comes with Node.js)
- TypeScript (Install globally or per project)
Setting Up a TypeScript Project
Step 1: Initialize a Node.js Project
mkdir my-typescript-node
cd my-typescript-node
npm init -y
This creates a package.json file.
Step 2: Install TypeScript and Dependencies
npm install --save-dev typescript ts-node @types/node
Step 3: Create a tsconfig.json File
tsc --init
Modify it as needed. A basic tsconfig.json
:
{
"compilerOptions": {
"target": "ES6",
"module": "CommonJS",
"outDir": "dist",
"rootDir": "src",
"strict": true
}
}
Explanation of Key tsconfig.json Options
- target: Specifies the ECMAScript version to compile to (e.g., ES5, ES6, ESNext).
- module: Defines the module system (CommonJS for Node.js, ESNext for modern ECMAScript modules).
- outDir: Specifies the directory for compiled JavaScript files.
- rootDir: Defines the root source directory containing TypeScript files.
- strict: Enables strict type-checking features.
Step 4: Create the Project Structure
my-typescript-node/
├── src/
│ ├── index.ts
├── dist/
├── package.json
├── tsconfig.json
├── node_modules/
Step 5: Write a Simple TypeScript Program
const greet = (name: string): string => {
return `Hello, ${name}!`;
};
console.log(greet("TypeScript"));
Step 6: Compile and Run the Code
tsc
node dist/index.js
Alternatively, run TypeScript directly with:
npx ts-node src/index.ts
Step 7: Add Scripts to package.json
{
"scripts": {
"build": "tsc",
"start": "node dist/index.js",
"dev": "ts-node src/index.ts"
}
}
Run in development mode:
npm run dev
Build and run:
npm run build
npm start
Conclusion
You’ve set up a TypeScript-based Node.js project! TypeScript enhances development with type safety and better tooling. From here, you can expand your project with additional features like Express.js, database integration, and more.
Happy coding!