Bölüm 1: TypeScript'e Giriş: Temeller ve İlk Uygulama

1.1 TypeScript Nedir?
TypeScript, Microsoft tarafından geliştirilen, JavaScript'in tüm özelliklerini kapsayan ancak statik tip desteğiyle geliştirilen bir üst dildir. Yani:
- JavaScript’in superset’idir (üst kümesi)
- .ts uzantılı dosyalar kullanılır
- Derlenerek JavaScript’e dönüşür
- Modern editörlerde otomatik tamamlama, hata öncesi uyarılar, güçlü refactoring imkanı sağlar
1.2 Neden TypeScript Kullanmalıyız?
TypeScript, JavaScript'te karşılaşılan bazı problemleri daha proje derlenmeden önce yakalayarak geliştiricinin daha güvenli kod yazmasına yardımcı olur:
❌ undefined is not a function gibi belirsiz runtime hataları → ✅ Compile-time hataları ile erken uyarı
❌ Karmaşık yapılarda tip takibi zor → ✅ Otomatize edilmiş açık tip sistemi
❌ Refactoring risklidir → ✅ Tip desteğiyle güvenli refactoring
❌ IDE yardımı sınırlı → ✅ IntelliSense, autocompletion ve yerleşik dökümantasyon desteği
Özellikle büyük React/Next.js projelerinde:
- Hata oranını düşürür
- Developer deneyimini artırır
- Ekip çalışmasında okunabilirliği artırır
1.3 TypeScript Nasıl Kurulur?
React Projesi:
1npx create-react-app my-app --template typescript2# veya mevcut projeye:3npm install --save-dev typescript @types/react @types/node
Next.js Projesi:
1npx create-next-app@latest my-next-app2# İlk çalıştırmada tsconfig.json ve .ts dosyaları otomatik oluşur
1.4 tsconfig.json – Ayarlar Dosyası
TypeScript'in nasıl derleneceğini belirleyen ayarların tutulduğu dosyadır.
1{2"compilerOptions": {3"target": "ES6",4"module": "ESNext",5"strict": true,6"jsx": "preserve",7"esModuleInterop": true,8"moduleResolution": "node",9"forceConsistentCasingInFileNames": true,10"skipLibCheck": true11},12"include": ["src"]13}
Önemli Ayarlar:
- strict: Tüm tip güvenlik kurallarını aktif eder (önerilir)
- jsx: React kullanıyorsan
react
veyapreserve
- esModuleInterop: CommonJS modüllerle uyum sağlar
1.5 İlk TypeScript Dosyası
Basit bir fonksiyon yazalım ve parametre ile dönüş tiplerini tanımlayalım:
1function greet(name: string): string {2return `Hello, ${name.toUpperCase()}!`;3}45console.log(greet("Yasin"));
Bu örnekte name: string
ve : string
dönüş tipi ile hem giriş hem çıkış tipi güvence altına alınmış olur.
Mini Uygulama: “React Selamla Bileşeni”
Amaç: Basit bir TypeScript bileşeni oluşturup props tipini tanımlamak.
1// components/Greeting.tsx2type GreetingProps = {3name: string;4};56export default function Greeting({ name }: GreetingProps) {7return <h2>Hello, {name.toUpperCase()}!</h2>;8}
1// App.tsx2import Greeting from "./components/Greeting";34export default function App() {5return <Greeting name="Yasin" />;6}
Özet
Konu | Açıklama |
---|---|
TypeScript | JavaScript + Tip Güvenliği |
tsconfig.json | Derleyici ayarları burada tutulur |
React Bileşenleri | type veya interface ile props tipi tanımlanır |
Derleme | .ts / .tsx dosyaları JS’ye dönüştürülür |