0Pricing
TypeScript Academy · Ders

Eşlemeli Türlerde Belirteçler: readonly ve ?

Eşlemeli türlerde belirteçleri +/- ile ekleyin veya kaldırın

Eşlemeli Türlerde Belirteçler: readonly ve ?, CoddyKit'te ücretsiz bir TypeScript Academy dersidir. Bu, 4 dersinin 2. 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.

Hoş Geldiniz

Eşlemeli türler, + ve - ön eklerini kullanarak özelliklerdeki `readonly` ve isteğe bağlı (`?`) değiştiricilerini ekleyebilir veya kaldırabilir.

+ ile Değiştirici Ekleme

`+` ön eki (varsayılan olarak örtük biçimde kullanılır), eşlemeli türdeki her özelliğe bir değiştirici ekler.
type Readonly<T> = { +readonly [K in keyof T]: T[K] }; // + is implicit
type Optional<T> = { [K in keyof T]+?: T[K] };

- ile readonly Kaldırma

Özelliklerden readonly değiştiricisini kaldırmak için `-readonly` kullanın.
type Mutable<T> = { -readonly [K in keyof T]: T[K] };
const mutableUser: Mutable<Readonly<User>> = { id: 1, name: 'Alice' };
mutableUser.id = 2; // OK now

- ile ? Kaldırma

İsteğe bağlı değiştiriciyi kaldırarak tüm özellikleri zorunlu hâle getirmek için `-?` kullanın.
type Required<T> = { [K in keyof T]-?: T[K] };
// Now all optional properties become required

- ve -? Birlikte Kullanımı

Bir türün değiştirilebilir ve zorunlu sürümünü oluşturmak için her iki kaldırma işlemini birleştirebilirsiniz.
type Concrete<T> = { -readonly [K in keyof T]-?: T[K] };

Partial ve Required Birbirinin Karşıtıdır

Partial, +? ile `?` ekler. Required ise -? ile kaldırır.
// From TypeScript lib:
type Partial<T> = { [K in keyof T]?: T[K] };   // adds ?
type Required<T> = { [K in keyof T]-?: T[K] };  // removes ?

Varsayılan Olarak Değiştirici Koruma

Açıkça + veya - belirtilmediğinde eşlemeli türler, kaynak türdeki mevcut değiştiricileri korur.
interface User { readonly id: number; name?: string; }
type Copy<T> = { [K in keyof T]: T[K] };
type C = Copy<User>; // readonly id preserved, name? preserved

Pratik Kullanım: Patch Türü

Güncellemeler için tüm özellikleri isteğe bağlı yapan ve aynı zamanda readonly değiştiricisini kaldıran bir Patch türü oluşturun.
type Patch<T> = { -readonly [K in keyof T]?: T[K] };

DeepReadonly

Eşlemeli türün içinde koşullu bir tür kullanarak readonly değiştiricisini özyinelemeli biçimde uygulayın.
type DeepReadonly<T> = {
  readonly [K in keyof T]: T[K] extends object ? DeepReadonly<T[K]> : T[K]
};

DeepPartial

Benzer şekilde, özellikleri derinlemesine isteğe bağlı hâle getirmek için ? değiştiricisini özyinelemeli biçimde uygulayın.
type DeepPartial<T> = {
  [K in keyof T]?: T[K] extends object ? DeepPartial<T[K]> : T[K]
};

Değiştirici Birleşimleri Tablosu

+readonly = readonly ekler. -readonly = readonly kaldırır. +? = isteğe bağlı ekler. -? = isteğe bağlıyı kaldırır. Dördü de birleştirilebilir.

Hızlı Kontrol

`{ [K in keyof T]-?: T[K] }` ifadesi ne üretir?

Özet

Eşlemeli türlerde bu değiştiricileri açıkça eklemek veya kaldırmak için readonly ve ? ifadelerinin önünde +/- ön eklerini kullanın. -? ifadesi Required özelliğini, -readonly ifadesi Mutable özelliğini uygular. Tam değiştirilebilirlik denetimi için ikisini birleştirin.

Sıkça Sorulan Sorular

“Eşlemeli Türlerde Belirteçler: readonly ve ?” dersi ücretsiz mi?

Evet — “Eşlemeli Türlerde Belirteçler: readonly ve ?” 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.

“Eşlemeli Türlerde Belirteçler: readonly ve ?” dersinde ne öğreneceğim?

Eşlemeli türlerde belirteçleri +/- ile ekleyin veya kaldı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 2. dersidir.

“Eşlemeli Türlerde Belirteçler: readonly ve ?” 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. Eşlemeli Türler: Nesne Türlerini Dönüştürme
  2. Eşlemeli Türlerde Belirteçler: readonly ve ?
  3. Şablon Değişmez Türleri: Metin Örüntüleri
  4. Eşlemeli Türlerde as ile Anahtarları Yeniden Eşleme
← TypeScript Academy Sayfasına Dön