Node.js va TypeScript


ULASHISH

TypeScript nima?

TypeScript ixtiyoriy statik yozishni qo‘shadigan JavaScript-ning yuqori to‘plamidir.

Bu xatolarni erta aniqlashga va xavfsizroq, qo‘llab-quvvatlanadigan kod yozishga yordam beradi.

Batafsil ma’lumot olish uchun TypeScript qo‘llanmasini ko‘rib chiqing.


Node.js bilan TypeScript-dan foydalanish

Node.js loyihalarida TypeScript dan foydalanish uchun TypeScript va turni aniqlash menejerini o‘rnatishingiz kerak:

npm install -g typescript
npm install --save-dev @types/node

Kodingizni .ts fayllarga yozing va ularni JavaScript-ga kompilyatsiya qiling:

tsc yourfile.ts

TypeScript loyihasini sozlash

1. Yangi Node.js loyihasini ishga tushiring

npm init -y

2. TypeScript va tip ta’riflarini o‘rnating

npm install --save-dev typescript @types/node

3. TypeScript konfiguratsiyasini ishga tushiring

npx tsc --init

TypeScript asoslari

1. Asosiy turlari

// Primitive types
let isDone: boolean = false;
let count: number = 10;
let name: string = 'TypeScript';

// Arrays
let numbers: number[] = [1, 2, 3];
let names: Array<string> = ['Alice', 'Bob'];

// Tuples
let user: [string, number] = ['Alice', 25];

// Enums
enum Color {Red, Green, Blue}
let color: Color = Color.Green;

2. Interfeyslar va turlari

// Interface
interface User {
  id: number;
  name: string;
  email?: string; // Optional property
}

// Type alias
type Point = {
  x: number;
  y: number;
};

// Using the interface
function printUser(user: User) {
  console.log(`User: ${user.name}`);
}


Node.js bilan TypeScript

1. Oddiy HTTP serverini yaratish

// server.ts
import http from 'http';

const server = http.createServer((req, res) => {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/plain');
  res.end('Hello, TypeScript!');
});

const PORT = process.env.PORT || 3000;
server.listen(PORT, () => {
  console.log(`Server running on port ${PORT}`);
});

2. TypeScript dan Express bilan foydalanish

# Install required packages
npm install express
npm install --save-dev @types/express

// app.ts
import express, { Request, Response } from 'express';
interface User {
  id: number;
  name: string;
}
const app = express();
app.use(express.json());
// In-memory database
let users: User[] = [];
// Get all users
app.get('/users', (req: Request, res: Response) => {
  res.json(users);
});
// Add new user
app.post('/users', (req: Request, res: Response) => {
  const user: User = req.body;
  users.push(user);
  res.status(201).json(user);
});
const PORT = process.env.PORT || 3000;
app.listen(PORT, () => {
  console.log(`Server running on port ${PORT}`);
});

TypeScript konfiguratsiyasi

tsconfig.json

{
  "compilerOptions": {
    "target": "es2018",
    "module": "commonjs",
    "outDir": "./dist",
    "rootDir": "./src",
    "strict": true,
    "esModuleInterop": true,
    "skipLibCheck": true,
    "forceConsistentCasingInFileNames": true
  },
  "include": ["src/**/*"],
  "exclude": ["node_modules"]
}

Kompilyatorning asosiy parametrlari:

  • target : ECMAScript maqsadli versiyasini belgilang
  • module : Modul kodini yaratishni belgilang
  • strict : Barcha qattiq turdagi tekshirish opsiyalarini yoqing
  • outDir : Chiqish strukturasini katalogga yo‘naltirish
  • rootDir : Kirish fayllarining ildiz katalogini belgilang

Nima uchun TypeScript-ni Node.js bilan ishlatish kerak?

TypeScript-ning afzalliklari:

  • Type Safety: xatolarni ishlash vaqtida emas, balki kompilyatsiya vaqtida aniqlang
  • Yaxshiroq IDE-ni qo‘llab-quvvatlash: Yuqori avtomatik to‘ldirish va kod navigatsiyasi
  • O‘z-o‘zini hujjatlashtirish kodi: Turlar hujjat sifatida xizmat qiladi
  • Osonroq qayta tiklash: o‘zgaruvchilar nomini xavfsiz o‘zgartiring va kodni yangilang
  • Asta-sekin qabul qilish: Mavjud JavaScript kodiga turlarni bosqichma-bosqich qo‘shing

TypeScript-dan qachon foydalanish kerak:

  • Bir nechta ishlab chiquvchilarga ega bo‘lgan katta kod bazalari
  • Xavfsizlik turi muhim bo‘lgan API
  • Uzoq muddatli davom etadigan loyihalar
  • Murakkab ma’lumotlar tuzilmalari bilan ishlashda

W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!