TypeScript 3D logosu yanında iki TypeScript tip modülü bloğu bembeyaz arka planda premium kompozisyon

TypeScript eğitimi, dili "JavaScript + tip" basitliğinden çıkartıp güçlü static type system olarak kullanmak isteyen mühendisleri yetiştirir. Static type system runtime davranışı ile birlikte okunur; type, interface, generic, union ve intersection arasında karar verme somut örneklerle çalışılır.

Eğitim sonunda katılımcı, type guard ve narrowing ile runtime ve type system'i birleştirir; utility type'ları (Partial, Required, Pick, Omit, Record) idiomatik kullanır; ESM ve CommonJS interop ile module sistemini yönetir. tsconfig ve strict mode ile production-grade setup eğitimin pratik kapanışıdır.

Katılımcı Profili

Bu eğitim, TypeScript'i "JavaScript + tip" basitliğinden çıkartıp güçlü static type system olarak kullanmak isteyen rollere yöneliktir:

  • JavaScript Geliştiriciler: TypeScript'e geçiş yapan mühendisler
  • Frontend Geliştiriciler: Type-safe React, Vue veya Angular yazan ekipler
  • Backend Mühendisleri: Node.js servisini TypeScript ile yazan roller
  • Full-stack Geliştiriciler: Frontend ve backend'i TypeScript ile yazan ekipler
  • Migration Ekipleri: Mevcut JavaScript projesini TypeScript'e taşıyan ekipler

Ön Gereklilikler

Bu eğitime katılım için aşağıdaki ön bilgiler önerilir:

  • JavaScript temellerinde rahatlık (ES2015+ özellikleri, async/await)
  • Bir framework veya kütüphane ile geliştirme deneyimi (React, Vue, Node.js)
  • npm veya yarn ile paket yönetimi mantığına aşinalık
  • VS Code kullanım deneyimi
  • Git ile sürüm kontrol akışı bilgisi

Süresi ve Tarihi

Süre: 2 gün. Bu süre standart program içindir; ek modüllere ve hedefe göre süre özelleştirilebilir.
Eğitim tarihleri ve saatleri, ekibinizin uygunluğuna göre birlikte planlanır.

Kazanımlar

Eğitim bitiminde katılımcı, TypeScript'i "JavaScript + tip" basitliğinden çıkartıp güçlü static type system olarak kullanır:

  • Static type system'i runtime davranışı ile birlikte okur
  • Type, interface, generic, union ve intersection arasında karar verir
  • Type guard ve narrowing ile runtime ve type system'i birleştirir
  • Utility type'ları (Partial, Required, Pick, Omit, Record) idiomatik kullanır
  • Module sistemini (ESM, CommonJS) ve declaration file'ı yönetir
  • Type ile interface arasında ürün gereksinimine göre seçim yapar
  • tsconfig ve strict mode ile production-grade setup kurar

TypeScript Eğitimi Konuları

1. TypeScript - JavaScript Superset

  • TypeScript ve JavaScript ilişkisi
  • Static typing avantajları
  • Compilation ve type erasure
  • tsc ve modern alternatif (esbuild, swc, Bun)
  • Resmi kaynak: TypeScript belgeleri

2. Type Annotation ve Type Inference

  • : Type syntax
  • Inference ile otomatik tip
  • Implicit any ve noImplicitAny
  • Type assertion (as Type)

3. Primitive ve Special Type

  • string, number, boolean
  • null ve undefined
  • void, never, unknown, any
  • bigint, symbol
  • Object literal type

4. Array ve Tuple

  • Array<T> ve T[] söz dizimi
  • Tuple ile sabit uzunluk
  • readonly tuple
  • Variadic tuple type

5. Union ve Intersection Type

  • Union (|) ile çoklu tip
  • Intersection (&) ile kombinasyon
  • Discriminated union
  • Literal type ve narrowing

6. Interface ve Type Alias

  • interface tanımı
  • type alias farkı
  • extends ve intersection
  • Declaration merging interface'te
  • Index signature

7. Class - TypeScript İlerlemeleri

  • Access modifier: public, private, protected
  • readonly property
  • Parameter property kısayolu
  • Abstract class
  • Class implements interface

8. Generic - Tip Parametresi

  • Generic function ve class
  • Constraint (extends)
  • Default type parameter
  • Variance: covariance, contravariance

9. Enum ve Const Enum

  • Numeric ve string enum
  • Const enum inline
  • Enum alternatifi: union of literals
  • Reverse mapping

10. Type Guard ve Narrowing

  • typeof guard
  • instanceof guard
  • in operator
  • User-defined type guard (is)
  • Discriminated union narrowing

11. Utility Type

  • Partial, Required, Readonly
  • Pick, Omit, Record
  • Exclude, Extract, NonNullable
  • ReturnType, Parameters, Awaited

12. Module Sistemi

  • ES Module: import, export
  • CommonJS interop
  • Namespace (legacy)
  • Path mapping ve baseUrl

13. tsconfig.json ve Strict Mode

  • strict, strictNullChecks, noImplicitAny
  • target ve module ayarı
  • moduleResolution: node, bundler
  • incremental compilation

14. Decorator ve Reflection

  • Stage 3 decorator
  • Class, method, property decorator
  • experimentalDecorators flag
  • reflect-metadata

TYPESCRIPT EĞİTİMİ ile İlgili
Sıkça Sorulan Sorular ve Cevapları


type ile interface arasında nasıl seçim yapılır?

Interface object shape için ideal — declaration merging ile aynı isimle genişletilir, OOP-style implements. type alias daha esnek; union, intersection, mapped type, conditional type için zorunlu. Pratik kural: nesne sözleşmesi için interface, type manipulation için type.

Generic ile any arasında karar?

any tip kontrolünü tamamen kapatır — TypeScript'in faydasını ortadan kaldırır. Generic tip parametresi ile tip-güvenli generic kod yazılır (Array, Promise). Daha çok generic kullanmak compile-time hata yakalama oranını artırır. any sadece migration veya 3rd party untyped lib geçici çözüm.

Discriminated union ile pattern matching nasıl yapılır?

Union type'a literal field (kind, type, tag) eklenir; switch ile bu field üzerinden narrowing yapılır. TypeScript exhaustiveness check yapar — yeni case eklenince eski switch'ler hata verir. Functional programming'in 'algebraic data type' pattern'ini TypeScript'e taşır.

Utility type'lar (Partial, Pick, Omit, Record) ne zaman kullanılır?

Partialtüm field'ları optional yapar — patch/update DTO için. Picksadece seçili field'lar. Omitbelirli field'ları çıkartır. Recordkey-value mapping. Mevcut tip'i bozmadan varyasyonlar üretmek için güçlü; DRY prensibine uyar.

strict mode neden açılmalı, hangi flag'leri içerir?

strict bayrağı 7+ kontrolü açar: noImplicitAny, strictNullChecks, strictFunctionTypes, strictBindCallApply, strictPropertyInitialization, alwaysStrict. Null safety en kritik — undefined access'i compile-time'da yakalar. Yeni proje strict ile başlamalı; legacy aşamalı strict adaptasyonu için flag-by-flag açılır.

tsc, esbuild ve swc arasında nasıl seçim yapılır?

tsc resmi compiler, type checking yapar ama yavaş. esbuild ve swc çok hızlı bundling/transpilation yapar ama type check etmezler. Modern setup: esbuild/swc transpile, tsc --noEmit type check ayrı çalışır. CI'da iki adım, dev'de hot reload için bundler hızlı çıkış verir.