☕ Java → TypeScript: Harika Haber — Çok Benzer!
Java → TypeScript: Harika Haber — Çok: TypeScript Java geliştiricileri için Python'dan çok daha kolay!
TypeScript Java geliştiricileri için Python'dan çok daha kolay! class, interface, access modifiers, generics, enums — hepsi tanıdık gelecek. Sadece birkaç kritik fark var. Bu bölüm bu farkları Java perspektifinden açıklar.
1. Temel Tipler — Java'ya Çok Benzer
Java'da int, long, float, double gibi ayrı sayısal tipler vardır. TypeScript'te tüm sayılar için tek tip kullanılır: number. string küçük harf, boolean aynı.
"number" = Java'nın int/long/float/double hepsi. "string" (küçük harf) ≠ Java String (büyük harf). TypeScript'te ayrıca "any" (Object gibi — kaçın!) var.
2. Interface — Yapısal Tipleme (En Önemli Fark!)
TypeScript interface Java'dakilere benzer ama kritik fark: TypeScript 'structural typing' kullanır. Nesnenin 'implements' bildirmesine gerek yoktur — doğru shape her nesne interface'i karşılar.
Java = nominal typing ('implements' zorunlu). TypeScript = structural typing ('doğru şekil yeterli'). Bu TypeScript'in en güçlü ve en farklı konsepti.
3. Sınıflar — Neredeyse Aynı!
TypeScript class sözdizimi Java'ya çok benzer: 'constructor' anahtar kelimesi, 'readonly' (final yerine), ve constructor shorthand (tek satırda hem declare hem assign).
"readonly" = Java "final". Constructor shorthand: "constructor(private x: T)" hem field'ı tanımlar hem atar — büyük boilerplate tasarrufu.
4. Erişim Belirleyicileri — Birebir Aynı!
TypeScript access modifier'ları Java ile birebir aynı: public, private, protected. Python'un aksine TypeScript gerçekten derleme zamanında zorlar!
TypeScript derleme zamanında private/protected'ı zorlar (Java gibi). "package-private" yok.
5. Generics — Java Generics'e Çok Benzer