İç içe namespace
- TypeScript kursu
- Orta seviye
- Ders 55/89
- 4 dk
İç içe namespace'leri öğrenirsin.
İç içe namespace
Namespace'ler iç içe tanımlanabilir. namespace Dis { export namespace Ic { ... } } yazımı ile bir namespace'i başka bir namespace içinde dışa aktarabilirsin. Dışarıdan üyeye Dis.Ic.üye biçiminde nokta zinciriyle erişilir.
namespace Dis {
export namespace Ic {
export function f() {
return "iç";
}
}
}
console.log(Dis.Ic.f()); // "iç"Her seviye export olmalı
İç içe namespace'lerde, dışarıdan erişilebilir olması için hem dış hem iç namespace'in export ile işaretlenmesi gerekir. Aksi halde iç namespace dışarıdan görünmez olur ve Dis.Ic.üye erişimi derleme hatası verir.
Uygulama İç içe yapıyı uygula
İç içe namespace yapısının derleme sonrası eşdeğeri, iç içe nesne deseniyle ifade edilir. Dis adında bir nesne tanımla; içinde Ic adında iç nesne olsun. Ic içinde f(): string metodu return "iç" gövdesiyle bulunsun. Dışarıdan iç yola nokta zinciriyle çağır ve sonucu console.log ile yazdır.
Başlangıç kodu
// Dis adında bir nesne tanımla
// Ic adında iç nesne ekle
// f metodunu ekle, "iç" döndürsün
// f metodunu çağır, sonucu yazdırÖrnek çözüm
const Dis = {
Ic: {
f(): string {
return "iç";
}
}
};
console.log(Dis.Ic.f());Beklenen çıktı
iç
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 İç içe bir namespace'teki üyeye nasıl erişilir?
- import Ic from Dis ile
- Yalnızca Ic.üye biçiminde
- Dis::Ic::üye biçiminde
- Dis.Ic.üye nokta zinciriyle Doğru cevap
Açıklama: İç içe namespace'te üyeye Dis.Ic.üye biçiminde nokta zinciriyle erişilir. Yalnızca Ic.üye çalışmaz çünkü Ic dışarıdan doğrudan görünmez; :: C++ sözdizimidir; import module içe aktarma içindir.
2 İç namespace'e eriş
namespace Dis {
export namespace Ic {
export function f(): string {
return "iç";
}
}
}
console.log(Dis.____.f());
namespace Dis {
export namespace Ic {
export function f(): string {
return "iç";
}
}
}
console.log(Dis.Ic.f());
Açıklama: Dis.Ic.f() çağrısında iç namespace adı Ic kullanılır. Ic.f yanlış çift erişim oluşturur; f tek başına fonksiyon yolunu belirtmez; Dis zaten dışarıdaki ilk ad.
3 İç içe namespace parçaları
| Kavram | Anlamı |
|---|---|
export namespace Ic |
İç namespace dışa aktarımı |
namespace Dis |
Dış namespace bildirimi |
Dis.Ic.f() |
Nokta zinciriyle çağrı |
her seviye export |
İç içe görünürlük kuralı |