CodeBlanks Logo Icon CodeBlanks

Parametre özellikleri

Kurucu parametresinde kısa yazımı öğrenirsin.

Parametre özellikleri

Parametre özelliği (parameter property), constructor parametresindeki belirteçle alanı kısa yoldan tanımlar ve atar. constructor(public name: string) yazdığında name alanı otomatik oluşur, public olur ve parametre değeri atanır; gövdeye this.name = name yazmana gerek kalmaz.

class User {
  constructor(public name: string, private age: number) {}
}
const u = new User("Ada", 30);
console.log(u.name);
// u.age;  // hata

Kısa yazım vs uzun yazım

Aynı sınıfı uzun yazım ve kısa yazım ile karşılaştıralım. Kısa yazım, constructor parametresindeki belirteç sayesinde alan tanımını ve this atamasını ortadan kaldırır. Uzun yazım ise alanı açıkça bildirir ve constructor gövdesinde this ile atar.

// Long form:
class User1 {
  public name: string;
  constructor(name: string) {
    this.name = name;
  }
}
// Shorthand:
class User2 {
  constructor(public name: string) {}
}

Uygulama User sınıfı yaz

User sınıfını tanımla: public name: string ve private age: number alanlarını açıkça bildir. constructor ile name ve age parametrelerini al ve this ile ata. Yeni bir User("Ada", 30) oluştur ve name alanını yazdır.

Başlangıç kodu

index.ts
// User sınıfı tanımla (public name, private age)
// constructor ile her ikisini al, this ile ata
// yeni User oluştur, name'i yazdır

Örnek çözüm

index.ts
class User {
  public name: string;
  private age: number;
  constructor(name: string, age: number) {
    this.name = name;
    this.age = age;
  }
}

const u = new User("Ada", 30);
console.log(u.name);

Beklenen çıktı

Ada

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 constructor(public name: string) yazdığında ne olur?

  • Yalnızca bir parametre tanımlanır
  • name alanı otomatik oluşturulur ve public olur Doğru cevap
  • name private olur
  • Sınıf hatası verir

Açıklama: Parametre özelliği, constructor parametresindeki belirteç ile alanı otomatik tanımlar ve atar. public name otomatik bir public alan oluşturur; this.name = name yazmana gerek kalmaz.

2 public belirtecini tamamla

Soru
class User {
  ____ name: string;
  constructor(name: string) {
    this.name = name;
  }
}
Cevap
class User {
  public name: string;
  constructor(name: string) {
    this.name = name;
  }
}

Açıklama: name alanının her yerden erişilebilir olması için public yazmalısın. private yalnız sınıf içine, protected alt sınıflara, static ise sınıf düzeyine taşır.

3 Parametre özelliği parçaları

Kavram Anlamı
constructor(public name: string) Public parametre özelliği
constructor(private age: number) Private parametre özelliği
constructor(protected id: string) Protected parametre özelliği
{} Kısa yazım (gövde boş)

Orta seviye bölümündeki tüm dersler