Türlerle Çoğullaştırma
Çoğul biçimleri tür güvenli şekilde modelleyin.
Türlerle Çoğullaştırma, 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.
Tür Güvenli Çoğullaştırma
Dillerin çoğul biçimlere ihtiyacı vardır: "1 öğe" ve "2 öğe". Tür güvenli i18n, çoğul kategorilerini (örneğin one / other) modeller ve count bağımsız değişkenini zorunlu kılar; böylece bunu asla unutmazsınız.
Çoğul Kategorileri
Intl çoğul kuralları zero, one, two, few, many, other gibi kategorileri tanımlar. İngilizcede yalnızca one ve other kullanılır; diğer yerel ayarlar daha fazlasını kullanır.
type PluralCategory = "zero" | "one" | "two" | "few" | "many" | "other";Çoğul İleti Yapısı
Çoğullaştırılmış iletiyi, kategori anahtarlarıyla bir nesne olarak temsil edin. other zorunlu geri dönüştür.
type PluralMessage = {
other: string;
} & Partial<Record<Exclude<PluralCategory, "other">, string>>;
const items: PluralMessage = {
one: "{count} item",
other: "{count} items",
};Çoğul ve Düz İletileri Ayırt Etme
Bir katalog, düz dizelerle çoğul nesnelerini bir arada barındırır. Bağımsız değişken gereksinimleri farklıdır; bu nedenle yapıyı tür düzeyinde tespit ederiz.
type IsPlural<M> = M extends { other: string } ? true : false;count Değerini Zorunlu Kılma
Bir ileti çoğul olduğunda çeviri bağımsız değişkenleri sayısal bir count içermelidir. Bağımsız değişken türünü koşullu olarak hesaplarız.
type PluralArgs<M> = IsPlural<M> extends true
? { count: number }
: {};
type A = PluralArgs<typeof items>; // { count: number }Çoğullar için Tür Güvenli t
Katalog aramasını koşullu bağımsız değişkenlerle birleştirerek çoğul iletilerin count istemesini, düz iletilerin ise istememesini sağlayın.
declare const cat: {
items: { one: string; other: string };
hello: string;
};
declare function t<K extends keyof typeof cat>(
key: K,
args: PluralArgs<(typeof cat)[K]>
): string;
t("items", { count: 3 }); // ok
t("items", {}); // Error: count required
t("hello", {}); // okBiçimi Çalışma Zamanında Seçme
Çalışma zamanında Intl.PluralRules, kategoriyi count değerinden seçer ve eşleşen dizeyi okursunuz (other değerine geri dönerek).
function plural(msg: { other: string; [k: string]: string }, count: number, locale: string) {
const cat = new Intl.PluralRules(locale).select(count);
return (msg[cat] ?? msg.other);
}Değişken Yerleştirmeyle Birleştirme
Çoğul dizeler genellikle {count} de içerir. Bağımsız değişken türü, çoğul gereksinimlerini seçilen biçimden çıkarılan araya değer yerleştirme değişkenleriyle kesiştirebilir.
type FullArgs<M> = PluralArgs<M> & ExtractVars<M>;
// count plus any {placeholders} in the messageDaha Zengin Biçimlere Sahip Yerel Ayarlar
Bazı yerel ayarlar (örneğin Lehçe ve Rusça) few ve many kullanır. PluralCategory bunları zaten içerdiği için bir katalog bu anahtarları sağlayabilir ve aynı mekanizma bunları işleyebilir.
const ruItems = {
one: "{count} товар",
few: "{count} товара",
many: "{count} товаров",
other: "{count} товара",
};Diğer Geri Dönüşünü Zorunlu Kılma
other, PluralMessage içinde zorunlu olduğundan tür sistemi bir geri dönüşün mevcut olduğunu garanti eder. Böylece hiçbir çoğul biçimin eşleşmediği bir çalışma zamanı durumu önlenir.
Bunun Önemi
Çoğul hataları ("1 öğe") ve unutulan count değerleri, türsüz i18n uygulamalarında yaygındır. Kategorileri tür olarak modellemek ve count değerini zorunlu kılmak, doğru çoğullaştırmayı varsayılan hale getirir ve eksik count değerini derleme hatasına dönüştürür.
Hızlı Kontrol
Tür güvenli çoğullaştırma konusundaki kavrayışınızı kontrol edin.
Özet
Çoğulları, zorunlu bir other geri dönüşü bulunan çoğul kategorileriyle anahtarlanmış nesneler olarak modellediniz, çoğul iletileri tür düzeyinde tespit ettiniz ve koşullu türler aracılığıyla sayısal bir count bağımsız değişkeni zorunlu kıldınız. Intl.PluralRules biçimi çalışma zamanında seçer ve aynı mekanizma daha zengin yerel ayarlara da uygulanabilir.
Sıkça Sorulan Sorular
“Türlerle Çoğullaştırma” dersi ücretsiz mi?
Evet — “Türlerle Çoğullaştırma” 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.
“Türlerle Çoğullaştırma” dersinde ne öğreneceğim?
Çoğul biçimleri tür güvenli şekilde modelleyin. 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.
“Türlerle Çoğullaştırma” 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
- Çeviri Anahtarlarının Türünü Belirleme
- Enterpolasyon Tür Güvenliği
- Türlerle Çoğullaştırma
- Yerel Ayara Duyarlı Tür Çıkarımı