TypeScript Academy · Ders

Yapılandırma Katmanları ve Varsayılanlar

Varsayılanları, dosyaları ve ortam geçersiz kılmalarını birleştirin.

3. ders / 413 adım

Yapılandırma Katmanları ve Varsayılanlar, CoddyKit'te ücretsiz bir TypeScript Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, TypeScript Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. TypeScript Academy kursu toplamda 4 dersten oluşur.

Katmanlı Yapılandırma

Gerçek uygulamalar yapılandırmayı çeşitli kaynaklardan oluşturur: yerleşik defaults, bir yapılandırma dosyası ve ortam geçersiz kılmaları. Daha sonraki katmanlar, tanımlanmış bir öncelik sırasına göre önceki katmanları geçersiz kılar.

Öncelik Sırası

Yaygın bir sıra, en düşük öncelikten en yükseğe şöyledir: defaults < dosya yapılandırması < ortam değişkenleri. Ortam geçersiz kılmaları, dağıtıma özel küçük değişikliklere uygun oldukları için kazanır.

Katmanları Tanımlama

Her katman kısmi bir yapılandırmadır. Yalnızca temel defaults katmanının eksiksiz olması gerekir; diğerleri seçili alanları doldurur veya geçersiz kılar.

interface Config { port: number; host: string; logLevel: string; }
const defaults: Config = { port: 3000, host: "localhost", logLevel: "info" };

Kısmi Geçersiz Kılmalar

Dosya ve ortam katmanları Partial<Config> olarak türlendirilir; çünkü yalnızca bazı anahtarları belirtebilirler. Bunları kısmi olarak türlendirmek, herhangi bir alanın eksik olabileceğini yansıtır.

const fileConfig: Partial<Config> = { port: 8080 };
const envConfig: Partial<Config> = { logLevel: "debug" };

Sığ Birleştirme

Düz bir yapılandırma için yayma ile birleştirme, önceliği temiz biçimde uygular. Daha sonraki nesneler önceki anahtarları geçersiz kılar ve son yapılandırmayı oluşturur.

const config: Config = { ...defaults, ...fileConfig, ...envConfig };
// { port: 8080, host: "localhost", logLevel: "debug" }

Sıra Neden Önemlidir

Yaymada sonraki değer kazandığından, en son listelenen kaynak en yüksek önceliğe sahiptir. Yayma işlemlerinin sırasını değiştirirseniz hangi katmanın hangisini geçersiz kıldığını da değiştirirsiniz.

İç İçe Yapılandırma Derin Birleştirme Gerektirir

Sığ yayma, iç içe nesnelerin tamamını değiştirir. Yapılandırma iç içe bölümler içeriyorsa, bunları geçersiz kılmak yerine yinelemeli olarak birleştiren bir derin birleştirme gerekir.

interface Config { db: { host: string; port: number }; }
// { ...a, ...b } would replace the entire db object, losing keys.

Tür Bilgili Derin Birleştirme

Yinelemeli bir birleştirme her iki nesneyi dolaşır, iç içe kayıtların içine iner ve yaprak değerleri geçersiz kılar. Sonucu türlendirmek için yinelemeli bir tür yardımcısı gerekir.

type DeepPartial<T> = { [K in keyof T]?: DeepPartial<T[K]> };
function deepMerge<T>(base: T, over: DeepPartial<T>): T {
  const out: any = { ...base };
  for (const k in over) {
    const v = (over as any)[k];
    out[k] = v && typeof v === "object" ? deepMerge((base as any)[k], v) : v;
  }
  return out;
}

Geçersiz Kılma Katmanları için DeepPartial

Geçersiz kılma katmanları DeepPartial<Config> olarak türlendirilir; böylece tam yapıya göre tür denetimini korurken iç içe anahtarların herhangi bir alt kümesini belirtebilirler.

const override: DeepPartial<Config> = { db: { port: 5433 } };
// merges into db without dropping db.host

Doğrulamayla Birleştirme

Önce birleştirin, ardından sonucu bir şemayla doğrulayın. Böylece doğruluk açısından denetlenen şey, son ve tamamen çözümlenmiş yapılandırma olur.

// const merged = deepMerge(defaults, override);
// const config = ConfigSchema.parse(merged);

Katmanlama için En İyi Uygulamalar

defaults katmanını eksiksiz ve güvenli tutun, dosyaların ortama özel ayarları ifade etmesine izin verin ve ortam değişkenlerini öncelik zincirinin en üstünde gizli değerler ile dağıtıma özel geçersiz kılmalar için ayırın.

Hızlı Kontrol

Bu dersle ilgili hızlı bir kontrol.

Özet

Katmanlı yapılandırma, defaults, dosya yapılandırması ve ortam geçersiz kılmalarını öncelik sırasına göre birleştirir (defaults < dosya < ortam). Düz yapılandırma yayma kullanır; iç içe yapılandırma için DeepPartial<Config> ile türlendirilmiş bir derin birleştirme gerekir. Birleştirilmiş sonucu doğrulayın.

Başlamak ücretsiz

Yapay zeka eğitmeniyle TypeScript öğren — ücretsiz

Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.

Kurslar
101
Dersler
352

Sıkça Sorulan Sorular

“Yapılandırma Katmanları ve Varsayılanlar” dersi ücretsiz mi?

Evet — “Yapılandırma Katmanları ve Varsayılanlar” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve TypeScript Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. TypeScript Academy kursu toplamda 4 dersten oluşur.

“Yapılandırma Katmanları ve Varsayılanlar” dersinde ne öğreneceğim?

Varsayılanları, dosyaları ve ortam geçersiz kılmalarını birleştirin. TypeScript Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

TypeScript Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te TypeScript Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.

“Yapılandırma Katmanları ve Varsayılanlar” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu TypeScript Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her TypeScript Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Ortam Değişkenlerinin Türünü Belirleme
  2. Şema Doğrulamalı Yapılandırma
  3. Yapılandırma Katmanları ve Varsayılanlar
  4. Gizli Bilgiler ve Tür Güvenliği
← TypeScript Academy Sayfasına Dön