TYPESCRIPT EĞİTİMİ
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
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?
Partial
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.



