Blog/typescript/Azərbaycan Fintech Startaplarında TypeScript: Niyə 2026-da Bu Bacarıq Sənə Lazımdır
typescript

Azərbaycan Fintech Startaplarında TypeScript: Niyə 2026-da Bu Bacarıq Sənə Lazımdır

B
Baku Stack AI
·2 aprel 2026·4 dəq oxuma·19 baxış
typescript.ascii
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
▓ ■ ■ ■ FINTECH TS ▓
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
▓ $ npm init fintech ▓
▓ ● TypeScript ✓ ON ▓
▓ ● NestJS ✓ ON ▓
▓ ● Strict ✓ ON ▓
▓──────────────────────▓
▓ Type Safety: ▓
▓ ▓▓▓▓▓▓▓▓▓▓▓▓▓░ 95% ▓
▓ AZN Bug Risk: ▓
▓ ▓▓░░░░░░░░░░░░ 8% ▓
▓ → Maaş: 4500+ AZN ▓
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓

Bakıda fintech sektoru böyüyür, TypeScript bilikli developer-lərə tələbat artır. Real kod nümunələri və maaş rəqəmləri ilə niyə indi keçid etməli olduğunu izah edirik.

Giriş: Bakıda Fintech Bumunun Ortasındayıq

Salam, developer dostlar! 👋

Éhtimal ki, son bir ildə LinkedIn-də Bakıda fintech vakansiyalarının artdığını görmüsən. ABB FinTech, Birbank, Emanat, m10 kimi şirkətlər komandalarını genişləndirir, yeni startaplar meydana çıxır. 2025-ci ildə Azərbaycan Mərkəzi Bankının açıq bank API-ləri (Open Banking) üzrə yol xəritəsi elan etməsi ilə bu sektor daha da qızışdı.

Bəs bu fintech komandaları hansı texnologiyanı seçir? Cavab getdikcə daha çox eynidir: TypeScript.

Bu məqalədə sənə konkret kod nümunələri, real rəqəmlər və praktiki səbəblərlə TypeScript-in Azərbaycan fintech mühitində niyə dominant olduğunu izah edəcəm.


1. Pul ilə İşləyəndə Type Safety Lüks Deyil, Zərurətdir

Fintech-də ən kiçik bug istifadəçinin puluna toxunur. JavaScript-in dynamic typing-i kiçik layihələrdə rahatlıq verir, amma ödəniş sistemi yazanda undefined gəlib keçən yerdə number gözləyirsənsə, bu artıq müştərinin 50 AZN-inin havaya uçması deməkdir.

Gəl real bir nümunəyə baxaq. Təsəvvür et ki, AZN transferi üçün API endpoint yazırsan:

typescript
// types/transaction.ts interface TransactionRequest { senderId: string; receiverId: string; amount: number; // AZN, minimum 0.01 currency: 'AZN' | 'USD' | 'EUR'; description?: string; } interface TransactionResponse { transactionId: string; status: 'pending' | 'completed' | 'failed'; timestamp: Date; fee: number; } // services/transfer.service.ts async function processTransfer( req: TransactionRequest ): Promise<TransactionResponse> { if (req.amount <= 0) { throw new InvalidAmountError('Məbləğ müsbət olmalıdır'); } if (req.currency === 'AZN' && req.amount > 50000) { throw new LimitExceededError('Gündəlik AZN limiti keçilib'); } const fee = calculateFee(req.amount, req.currency); const result = await ledgerService.debit(req.senderId, req.amount + fee); return { transactionId: result.id, status: 'completed', timestamp: new Date(), fee, }; }

Burada currency field-inə diqqət et — 'AZN' | 'USD' | 'EUR' union type sayəsində heç kim səhvən 'azn' və ya 'manat' göndərə bilməz. Compiler səhvi runtime-dan əvvəl tutur. Saf JavaScript-də bu xətanı ancaq production-da istifadəçi şikayətindən tapardın.


2. Rəqəmlər Danışır: Maaşlar və Tələbat

Baku Stack olaraq biz hər rüb yerli vakansiyaları analiz edirik. 2026-cı ilin Q1 rəqəmləri belədir:

  • Junior TypeScript/Node.js developer (Bakı, ofis): 1,200 – 1,800 AZN
  • Middle Full-Stack (React + TypeScript + Node): 2,500 – 4,000 AZN
  • Senior Fintech Backend (TypeScript + NestJS): 4,500 – 7,000 AZN
  • Remote (Avropa fintech, Azərbaycandan): $3,000 – $6,000/ay

Müqayisə üçün: saf JavaScript ilə işləyən eyni səviyyəli developer-in maaşı orta hesabla 15-25% aşağıdır. Səbəb sadədir — fintech şirkətləri TypeScript biliyinə premium ödəyir, çünki bug-ların qiyməti çox yüksəkdir.

Birbank-ın texniki komandasının 2025-də NestJS + TypeScript stack-inə tam keçid etdiyi artıq sirr deyil. Kapital Bank-ın yeni digital banking platforması da TypeScript üzərində qurulub. Bu trend təsadüfi deyil.


3. NestJS + TypeScript: Azərbaycan Fintech-inin Sevimli Stack-i

Niyə məhz NestJS? Çünki fintech backend-i adətən bu xüsusiyyətləri tələb edir:

  • Modular arxitektura — ödəniş, istifadəçi, KYC modulları ayrı-ayrı develop olunmalıdır
  • Güclü validation — hər gələn request yoxlanmalıdır
  • Dependency injection — test yazmaq asan olmalıdır
  • Swagger/OpenAPI dəstəyi — bank API-ləri üçün sənədləşmə vacibdir

NestJS bütün bunları TypeScript-in gücü ilə birlikdə verir. Gəl KYC (Know Your Customer) validation nümunəsinə baxaq:

typescript
// dto/kyc-verify.dto.ts import { IsString, IsDateString, Matches } from 'class-validator'; export class KycVerifyDto { @IsString() @Matches(/^[A-Z]{2}\d{7}$/, { message: 'Şəxsiyyət vəsiqəsi formatı yanlışdır (məs: AZE1234567)', }) documentNumber: string; @IsString() fullName: string; @IsDateString() dateOfBirth: string; @IsString() @Matches(/^\+994(50|51|55|70|77)\d{7}$/, { message: 'Azərbaycan mobil nömrəsi formatı yanlışdır', }) phoneNumber: string; }

Bu sadə DTO ilə sən həm type safety, həm runtime validation, həm də Azərbaycan-spesifik formatları (AZE pasport, +994 nömrə) bir yerdə həll edirsən. JavaScript-də eyni şeyi yazmaq üçün ən azı 3 dəfə çox kod lazım olardı.


4. Frontend-də Də TypeScript: Birbank Effekti

Fintech-də frontend xüsusilə kritikdir. İstifadəçi balansını görəndə NaN AZN yazılsa, etibar sıfıra düşür.

React + TypeScript ilə sadə balans komponenti:

typescript
interface AccountBalance { available: number; pending: number; currency: 'AZN' | 'USD' | 'EUR'; } const BalanceCard: React.FC<{ balance: AccountBalance }> = ({ balance }) => { const formatted = new Intl.NumberFormat('az-AZ', { style: 'currency', currency: balance.currency, }).format(balance.available); return ( <div className="balance-card"> <span className="amount">{formatted}</span> {balance.pending > 0 && ( <span className="pending"> Gözləmədə: {balance.pending.toFixed(2)} {balance.currency} </span> )} </div> ); };

balance.available həmişə number olacağına zəmanət var. undefined.toFixed(2) kimi runtime crash-lər artıq tarixə qarışır.


5. Praktiki Tövsiyələr: Bu Gün Nə Etməlisən?

Əgər hələ TypeScript-ə keçməmisənsə, budur konkret plan:

  1. Bu həftə: Mövcud JS layihəndə tsconfig.json yarat, strict: false ilə başla
  2. İlk ay: Yeni faylları .ts ilə yaz, köhnələrə toxunma
  3. İkinci ay: strict: true-ya keç, type error-ları bir-bir həll et
  4. Üçüncü ay: DTO-lar, interface-lər, generic-lər ilə tanış ol
  5. Portfolio: GitHub-da bir fintech demo layihəsi qoy (məsələn, sadə ödəniş API-si NestJS ilə)

Bakıdakı fintech müsahibələrində ən çox soruşulan TypeScript mövzuları:

  • Generic typesPromise<T>, Partial<T>, Pick<T, K>
  • Union və intersection types — ödəniş statusları üçün
  • Type guards — runtime type checking
  • Utility typesOmit, Record, Required

Nəticə: TypeScript Artıq Seçim Deyil, Standartdır

Azərbaycan fintech bazarı 2026-da sürətlə böyüyür. Mərkəzi Bankın Open Banking təşəbbüsü, yeni neobank lisenziyaları və artan investisiyalar bu sektorun developer-lərə ehtiyacını artırır.

TypeScript bilmək sənə:

  • 15-25% daha yüksək maaş imkanı verir
  • ✅ Fintech şirkətlərinin müsahibə süzgəcindən keçməyə kömək edir
  • ✅ Remote iş imkanlarını dramatik şəkildə artırır
  • ✅ Production bug-larını azaldır, sənin və komandanın həyatını asanlaşdırır

Bu gün npm install typescript yaz və başla. Üç aydan mənə təşəkkür edəcəksən. 🚀


Sualın var? Baku Stack Discord serverində #fintech kanalında gözləyirik!

Oxşar məqalələr

typescript.ascii
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
▓ ■ ■ ■ TYPESCRIPT ▓
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
▓ z.string() ✓ safe ▓
▓ z.number() ✓ safe ▓
▓ z.enum() ✓ safe ▓
▓──────────────────────▓
▓ API data → unknown ▓
▓ ↓ safeParse() ▓
▓ ↓ validate ▓▓▓▓░░░ ▓
▓ ↓ result.success ▓
▓ ✓ typed & safe! ▓
▓ ● runtime: 100% ▓
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓

Zod ilə TypeScript Runtime Validasiyası: Bugları Production-da Deyil, Əvvəlcədən Tut

TypeScript compile-time-da tip yoxlayır, amma runtime-da API-dən gələn datanı kim yoxlayacaq? Zod ilə validasiyanı necə həll edəcəyini real nümunələrlə göstərirəm.

typescript.ascii
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
▓ ■ ■ ■ TYPESCRIPT ▓
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
▓ supabase gen types ▓
▓ ▓▓▓▓▓▓▓▓▓▓▓▓░░░ 80% ▓
▓ ▓
▓ → Database → Types ▓
▓ → Types → Client ▓
▓ → Client → IDE ✓ ▓
▓ ▓
▓ ● Row ● Insert ▓
▓ ● Update ● Delete ▓
▓ type safety: 100% ✓ ▓
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓

TypeScript ilə Supabase inteqrasiyası — tam tip təhlükəsizliyi

Supabase + TypeScript birlikdə işlədəndə runtime xətaları minimuma enir. Database-dən gələn hər sətir tipli olur. Necə? Bu məqalədə.

typescript.ascii
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
▓ ■ ■ ■ TYPESCRIPT ▓
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
▓ function id<T>(x:T):T ▓
▓ return x; ▓
▓ ▓
▓ ● id<string>("Bakı") ▓
▓ → "Bakı" ✓ ▓
▓ ● id<number>(2026) ▓
▓ → 2026 ✓ ▓
▓ ▓
▓ Generics skill: ▓
▓ ▓▓▓▓▓▓▓▓░░ 80% ▓
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓

TypeScript Generics — Nədir, Niyə Lazımdır, Necə İstifadə Olunur?

TypeScript generics-i başa düşmək Bakıda frontend və backend vakansiyaların 70%-ində tələb olunan skilldir. Bu bələdçi ilə generics-i bir dəfəlik öyrən.

← Bloqa qayıt