0Pricing
TypeScript Academy · Ders

as const ile const Bildirimleri

Nesneleri ve dizileri derinlemesine salt okunur değişmez türlere dönüştürün.

as const ile const Bildirimleri, 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.

as const İddiası

const iddiası, as const biçiminde yazılır ve TypeScript'e bir değer için en özel, derinlemesine readonly türü çıkarmasını söyler. Nesne özellikleri literal ve değişmez hâle gelir; diziler salt okunur demetlere dönüşür.

const point = { x: 10, y: 20 } as const;
// type: { readonly x: 10; readonly y: 20 }
console.log(point.x, point.y);

as const Olmadan

İddia olmadan nesne özellikleri genişler. { x: 10 } ifadesinde x: number çıkarılır ve değer değiştirilebilir olur. as const ifadesinin neyi değiştirdiğini görmek için bunu önceki sahneyle karşılaştırın.

const a = { x: 10 };       // x: number, mutable
const b = { x: 10 } as const; // x: 10, readonly
a.x = 99; // allowed
console.log(a.x, b.x);

Özellikleri Literal Değerlere Sabitleme

as const, her dize özelliğini kendi literal türüne dönüştürür. Bu, anahtarları ve değerleri kesin kalması gereken config nesneleri için son derece değerlidir.

const config = {
  env: 'production',
  retries: 3
} as const;
// env: 'production', retries: 3
console.log(config.env, config.retries);

readonly Değişikliği Önler

as const özellikleri readonly yaptığı için derleyici yeniden atamayı engeller. Değer tür düzeyinde değişmezdir ve böylece yanlışlıkla değiştirilmesine karşı korunur.

const settings = { mode: 'dark' } as const;
console.log(settings.mode);
// settings.mode = 'light'; // Error: readonly property

Dizilerde const İddiaları

Bir diziye uygulandığında as const, literal türlerden oluşan bir salt okunur demet üretir. Uzunluk sabittir ve her öğe kendi kesin değerini korur.

const colors = ['red', 'green', 'blue'] as const;
// type: readonly ['red', 'green', 'blue']
console.log(colors[0], colors.length);

Salt Okunur Dizilerde Değişiklik Yok

Salt okunur bir demet, push gibi değişiklik yapan yöntemleri veya dizin atamasını reddeder. Veriler kilitlenir; sabit arama tabloları için tam olarak istediğiniz şey budur.

const days = ['Mon', 'Tue', 'Wed'] as const;
console.log(days.join(', '));
// days.push('Thu'); // Error: push does not exist on readonly tuple

typeof arr[number] ile Birleşim Türetme

Güçlü bir kalıp: bir readonly diziyi alın ve typeof arr[number] kullanarak öğe türlerinin birleşimini türetin. Değerleri bir kez yazarsınız ve karşılığında ücretsiz olarak bir literal birleşim elde edersiniz.

const ROLES = ['admin', 'editor', 'viewer'] as const;
type Role = typeof ROLES[number];
// 'admin' | 'editor' | 'viewer'
const r: Role = 'editor';
console.log(r);

Tek Doğruluk Kaynağı

Bu yaklaşım, çalışma zamanındaki dizinizle türünüzü eşzamanlı tutar. Diziye bir değer eklediğinizde birleşim otomatik olarak güncellenir; bakımını yapmanız gereken yinelenen listeler olmaz.

const SIZES = ['S', 'M', 'L', 'XL'] as const;
type Size = typeof SIZES[number];

function pick(s: Size): void {
  console.log('Picked', s);
}
pick('M');

Demetlerde const İddiaları

Öğe türlerinin farklı olduğu demetlerde as const, hem kesin türleri hem de sırayı koruyarak hassas bir salt okunur demet üretir.

const pair = [1, 'one'] as const;
// type: readonly [1, 'one']
console.log(pair[0], pair[1]);

Derin readonly Davranışı

as const işlemi derinlemesine uygular. İç içe nesneler ve diziler de en alt düzeye kadar literal türleriyle birlikte salt okunur hâle gelir.

const data = {
  name: 'app',
  tags: ['a', 'b']
} as const;
// tags is readonly ['a', 'b']
console.log(data.name, data.tags[1]);

Enum'lar için Const İddiaları

Bir const nesnesi ile ondan türetilen bir birleşim, enum için hafif bir alternatiftir. Çalışma zamanında literal değerler ve kesin bir tür elde edersiniz; yayımlanan ek kod oluşmaz.

const Status = {
  Idle: 'idle',
  Active: 'active'
} as const;
type Status = typeof Status[keyof typeof Status];
const s: Status = Status.Active;
console.log(s);

Kısa Kontrol

Const iddiaları konusundaki anlayışınızı sınayın.

Özet: as const

as const işleminin şunları yaptığını öğrendiniz:

  • En özel, derinlemesine readonly literal türü çıkarır.
  • Nesne özelliklerini literal salt okunur alanlara dönüştürür.
  • Dizileri literal değerlerden oluşan salt okunur demetlere dönüştürür.
  • typeof arr[number] aracılığıyla birleşimlerin türetilmesini sağlar ve değerlerle türleri eşzamanlı tutar.

Sırada, literal değerleri anlamlı birleşimlerde bir araya getireceğiz.

const LEVELS = ['low', 'mid', 'high'] as const;
type Level = typeof LEVELS[number];
const chosen: Level = 'mid';
console.log(chosen);

Sıkça Sorulan Sorular

“as const ile const Bildirimleri” dersi ücretsiz mi?

Evet — “as const ile const Bildirimleri” 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.

“as const ile const Bildirimleri” dersinde ne öğreneceğim?

Nesneleri ve dizileri derinlemesine salt okunur değişmez türlere dönüştürün. 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.

“as const ile const Bildirimleri” 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. Dize ve Sayısal Değişmez Türleri
  2. Doğru/Yanlış Değişmezleri ve Değişmez Çıkarımı
  3. as const ile const Bildirimleri
  4. Değişmezleri Birleşimlerde Birleştirme
← TypeScript Academy Sayfasına Dön