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