CodeBlanks Logo Icon CodeBlanks

Özet - Namespace'ler

Namespace'lerle eski tip bir kütüphane başlığı yazarsın.

Özet - Namespace'ler

Namespace'ler, ilgili kodu global kapsamda gruplamanın eski desenidir. namespace Ad ile tanımlanır, export ile üyeler dışa aktarılır, iç içe kullanılabilir ve Dis.Ic.üye biçiminde erişilir. Modern projelerde module tercih edilir; namespace eski kütüphane taşımaları için hâlâ işe yarar.

namespace Kutuphane {
  export namespace Matematik {
    export function topla(a, b) { return a + b; }
  }
}
Kutuphane.Matematik.topla(2, 3);

Uygulama Eski tip kütüphane başlığı

İç içe namespace yapısının derleme sonrası eşdeğeri olan iç içe nesne desenini kullanarak Kutuphane adında bir nesne tanımla. İçinde Matematik adında iç nesne olsun. Matematik içinde topla(a: number, b: number): number ve carp(a: number, b: number): number metotları bulunsun; topla a + b, carp a * b döndürsün. Dışarıdan iç yola nokta zinciriyle 2 ve 3 ile çağır, sonuçları ayrı satırlarda yazdır.

Başlangıç kodu

index.ts
// Kutuphane adında bir nesne tanımla
// Matematik adında iç nesne ekle
// topla metodunu ekle, a+b döndürsün
// carp metodunu ekle, a*b döndürsün
// her ikisini de 2 ve 3 ile çağır, sonuçları ayrı satırda yazdır

Örnek çözüm

index.ts
const Kutuphane = {
  Matematik: {
    topla(a: number, b: number): number {
      return a + b;
    },
    carp(a: number, b: number): number {
      return a * b;
    }
  }
};
console.log(Kutuphane.Matematik.topla(2, 3));
console.log(Kutuphane.Matematik.carp(2, 3));

Beklenen çıktı

5
6

Soru ve cevaplar

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

1 Hangi durumda namespace module'a tercih edilebilir?

  • Modern bir web uygulaması başlatırken
  • ES module uyumlu bir kütüphane yazarken
  • Tek dosyalık bir yardımcı program yazarken Doğru cevap
  • Yeni bir çok dosyalı proje kurulurken

Açıklama: Tek dosyalık yardımcı programlar için namespace hâlâ pratik olabilir. Çok dosyalı yeni projelerde, modern web uygulamalarında ve ES module kütüphanelerinde module tercih edilir.

2 Dış namespace adıyla eriş

Soru
namespace Kutuphane {
  export namespace Matematik {
    export function topla(a: number, b: number): number {
      return a + b;
    }
  }
}
console.log(____.Matematik.topla(2, 3));
Cevap
namespace Kutuphane {
  export namespace Matematik {
    export function topla(a: number, b: number): number {
      return a + b;
    }
  }
}
console.log(Kutuphane.Matematik.topla(2, 3));

Açıklama: En dıştaki namespace adıyla erişim başlar; bu yüzden console.log(Kutuphane.Matematik.topla(...)) yazılır. Matematik iç namespace'tir; Hesap ve Dis ise bu bağlamda tanımsızdır.

3 Namespace kavramlarını eşleştir

Kavram Anlamı
namespace Ad Global kapsam gruplama
export namespace Ic İç namespace dışa aktarımı
Dis.Ic.üye Nokta zinciri erişimi
modern projelerde module Güncel tercih

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