Property decorator
- TypeScript kursu
- Orta seviye
- Ders 46/89
- 4 dk
Özellik decorator'larını öğrenirsin.
Property decorator
Özellik decorator'u, bir sınıf özelliğinin hemen üstüne yazılır ve iki argüman alır: (target, key). target sınıf prototype'ı, key ise özellik adıdır. Metot decorator'undan farklı olarak descriptor alınmaz; çünkü özellik henüz tanımlanmamış olabilir.
function Kayit(
target: any,
key: string
) {
console.log("özellik: " + key);
}
class Kisi {
@Kayit ad: string;
}Property decorator kullanım alanları
Property decorator'lar genellikle özellik adlarını kaydetmek, doğrulama kuralları eklemek veya metadata taşımak için kullanılır. Çalışma anında özellik değeri henüz atanmamış olabilir; bu yüzden decorator genellikle kayıt yapar ve değeri sonradan işler. Örneğin bir form alanlarını otomatik bulan bir sistem, property decorator'larıyla alan adlarını toplayabilir.
Uygulama Özellik kaydı ekle
Kayit decorator'u yaz: (target: any, key: string) alsın ve console.log("özellik: " + key) ile özellik adını yazdırsın. Kisi sınıfı yaz; ad: string özelliği ve constructor(ad: string) olsun, constructor this.ad = ad yapsın. Decorator'u Kisi.prototype ve "ad" ile çağırarak elle uygula. k değişkenine new Kisi("Ayşe") ata, k.ad'ı console.log ile yazdır.
Başlangıç kodu
// Kayit decorator'unu yaz: target ve key alır
// console.log ile "özellik: " + key yazdır
// Kisi sınıfı yaz: ad özelliği ve constructor(ad: string)
// constructor this.ad = ad yapsın
// Decorator'u Kisi.prototype ve "ad" ile çağırarak elle uygula
// k = new Kisi("Ayşe") ile örnek oluştur
// k.ad'ı yazdırÖrnek çözüm
function Kayit(target: any, key: string): void {
console.log("özellik: " + key);
}
class Kisi {
ad: string;
constructor(ad: string) {
this.ad = ad;
}
}
Kayit(Kisi.prototype, "ad");
const k = new Kisi("Ayşe");
console.log(k.ad);Beklenen çıktı
özellik: ad Ayşe
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Bir property decorator'u kaç argüman alır?
- 2 Doğru cevap
- 3
- 0
- 1
Açıklama: Property decorator'u iki argüman alır: target (prototype) ve key (özellik adı). Üç argüvan metot decorator'una, bir argüman sınıf decorator'una aittir.
2 Property decorator imzası
function Kayit(target: any, ____): void {
console.log("özellik: " + key);
}
function Kayit(target: any, key: string): void {
console.log("özellik: " + key);
}
Açıklama: Property decorator iki parametre alır: target ve key. descriptor yalnızca metot decorator'larında bulunur; value ve ctor bu imzada geçerli değildir.
3 Property decorator parçaları
| Kavram | Anlamı |
|---|---|
target |
Sınıf prototype'ı |
key |
Özellik adı |
(target, key) |
Property decorator imzası |
console.log(key) |
Özellik adını yazdırma |