Parametre özellikleri
- TypeScript kursu
- Orta seviye
- Ders 9/89
- 4 dk
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; // hataKı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
// 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
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
class User {
____ name: string;
constructor(name: string) {
this.name = name;
}
}
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ş) |