☕ 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