Sınıflar & Decorator'lar
Sınıflar & Decorator'lar: TypeScript class'ı, Java'daki aynı kalıbın kısaltılmış formu gibidir — Java'da bir mobilyayı kurmak için önce parçayı tanımlar (field), sonra elinizle v
TypeScript class'ı, Java'daki aynı kalıbın kısaltılmış formu gibidir — Java'da bir mobilyayı kurmak için önce parçayı tanımlar (field), sonra elinizle vidalarsınız (constructor içinde `this.field = value`); TypeScript'te ise constructor parametresine `public` yazdığınızda parçayı tanımlama ve vidalama işlemi otomatik olarak tek adımda yapılır. Peki Java'nın iki adımlık yöntemi neden hâlâ var, TypeScript neden bu kısayolu sunma ihtiyacı duydu? Çünkü Java'da tip güvenliği zaten zorunluydu ve kısayol olmadan da field/constructor ayrımı net kalıyordu; TypeScript ise JavaScript'in esnekliğini korurken aynı tip güvenliğini daha az tekrarla sağlamak zorunda — fazla satır, fazla unutma riski demektir. QA'da somut faydası: bir `TestContext` class'ında `browser`, `page`, `baseUrl` gibi birçok alan varsa, Java tarzı uzun constructor'da bir alanı atamayı unutmak kolaydır ve hata ancak o alana erişilince çalışma zamanında patlar; `public` kısayolu kullanan TypeScript'te her parametre otomatik atandığı için bu sınıfta unutma riski yapısal olarak ortadan kalkar.
Micro Lab: TypeScript kod yazma
TODO satirini beklenen cozumdeki kritik satirla degistir. Bu gercek runtime degil; amac dogru yapinin yazilmasini kontrollu olarak pekistirmek.
TypeScript sınıf anatomisi
Constructor kısayolu
public readonly id: number constructor'da field tanımlar — Java'daki 2 satır yerine 1 satır
Erişim belirleyiciler
private, public, protected — Java ile aynı anlam, daha az boilerplate
extends + abstract class — Java'daki extend ve abstract ile birebir eşdeğer
TypeScript sınıfı tanımlamanın adımlarını sırala:
constructor parametrelerine public/private ekle
TypeScript field'ları otomatik oluşturur
Metotlara dönüş tipi yaz
extends ile alt sınıf oluştur