Uygulamalı Sayısal Tür Yardımcıları
Tür aritmetiğini aralık ve uzunluk kısıtlarına uygulayın.
Uygulamalı Sayısal Tür Yardımcıları, CoddyKit'te ücretsiz bir TypeScript Academy dersidir. Bu, 4 dersinin 4. 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.
Kuramdan Araçlara
Aritmetik ve karşılaştırma, pratik yardımcı araçlar olarak paketlendiğinde kullanışlı hâle gelir: aralıklar, uzunluğu zorunlu diziler ve sınırlandırılmış dizinler. Bu derste temel araçlar, gerçekten kullanıma sunabileceğiniz yapılara dönüştürülür.
type BuildTuple<N extends number, Acc extends unknown[] = []> =
Acc["length"] extends N ? Acc : BuildTuple<N, [...Acc, unknown]>;Numaralandırma: 0'dan N-1'e
Temel bir yardımcı tür, 0 ile N-1 arasındaki tüm sayılardan oluşan bir birleşim türü üretir. Uzunluğu N olan bir demet oluşturun ve her anahtar dizinini okuyun.
type Enumerate<N extends number, Acc extends number[] = []> =
Acc["length"] extends N
? Acc[number]
: Enumerate<N, [...Acc, Acc["length"]]>;
type A = Enumerate<4>; // 0 | 1 | 2 | 3Aralık Türleri
Bir Range<Start, End>, Start değerinden End - 1 değerine kadar olan sayıları üretir. Enumerate<End> sonucunu alın ve Start değerinin altındaki değerleri dışlayın.
type Range<S extends number, E extends number> =
Exclude<Enumerate<E>, Enumerate<S>>;
type A = Range<2, 6>; // 2 | 3 | 4 | 5Bir Parametreyi Kısıtlama
Geçerli bağımsız değişkenleri kısıtlamak için bir aralık kullanın. Yalnızca küçük bir zar atışını kabul eden bir işlev, Range<1, 7> alabilir; böylece derleyici sınır dışındaki değerleri reddeder.
type DiceFace = Range<1, 7>; // 1|2|3|4|5|6
declare function roll(face: DiceFace): void;
roll(4); // ok
// roll(8); // compile errorDizi Uzunluğunu Zorunlu Kılma
Sabit uzunluklu bir dizi türü, yanlış boyuttaki dizileri reddeder. Özyineleme kullanarak T türünde N öğeden oluşan bir demet oluşturun.
type FixedArray<T, N extends number, Acc extends T[] = []> =
Acc["length"] extends N ? Acc : FixedArray<T, N, [...Acc, T]>;
type RGB = FixedArray<number, 3>; // [number, number, number]Sabit Uzunluğu Kullanma
Artık hatalı kullanım derleme hatasına yol açar. Üç boyutlu bir nokta tam olarak üç koordinata sahip olmalıdır.
type Vec3 = FixedArray<number, 3>;
const v: Vec3 = [1, 2, 3]; // ok
// const w: Vec3 = [1, 2]; // error: missing elementDizinleri Sınırlandırma
Bir dizini geçerli dizi konumlarıyla sınırlayabilirsiniz. Yalnızca sınırlar içindeki dizinlerin kabul edilmesi için bir demet uzunluğunu Enumerate ile birleştirin.
type Indices<T extends readonly unknown[]> = Enumerate<T["length"]>;
type Arr = readonly ["a", "b", "c"];
type I = Indices<Arr>; // 0 | 1 | 2Güvenli Dizinli Erişim
Geçerli bir dizin türüyle, dizin parametresinin sınırların dışına çıkamayacağı bir erişici yazabilirsiniz; böylece birer kayma hataları derleme zamanında yakalanır.
declare function at<T extends readonly unknown[]>(
arr: T,
i: Indices<T>
): T[Indices<T>];
const x = at(["a", "b", "c"] as const, 2); // ok
// at(["a", "b", "c"] as const, 3); // errorMin ve Max Yardımcıları
Bir değeri bir aralık içine sınırlamak için, iki sayıdan büyük veya küçük olanı seçen karşılaştırmayı bunun üzerine ekleyin.
type Max<A extends number, B extends number> =
GreaterThan<A, B> extends true ? A : B;
type Min<A extends number, B extends number> =
GreaterThan<A, B> extends true ? B : A;
type X = Max<3, 8>; // 8
type Y = Min<3, 8>; // 3Yardımcı Araçları Birleştirme
Bu yardımcı araçlar birleştirilebilir. Uzunluğu bir aralık içinde olan bir demet, kendi dizisiyle sınırlandırılmış bir dizin, min ve max ile sınırlanmış bir değer: her biri küçük ve yeniden kullanılabilir bir tür düzeyi işlevidir.
type ValidPort = Range<1, 4>; // 1 | 2 | 3 (toy example)
type Slots = FixedArray<ValidPort, 2>; // [1|2|3, 1|2|3]Ne Zaman Değer
Tür aritmetiği küçük, sabit sınırlar için öne çıkar: RGB demetleri, zar yüzleri, tahta koordinatları ve iletişim kuralı alanı boyutları. Özyineleme sınırlarının ve karmaşıklığın güvenliği aşacağı büyük veya dinamik sayılar için buna değmez. Sınır küçük, sağladığı güvence değerli olduğunda başvurun.
type Board = FixedArray<FixedArray<0 | 1, 3>, 3>; // 3x3 gridKısa Sınama
Pratik sayısal yardımcı araçlar konusundaki anlayışınızı sınayın.
Özet
Küçük bir sayısal tür yardımcı araçları kitaplığı oluşturdunuz.
EnumerateveRangesayı birleşim türleri üretir.FixedArraytam uzunlukları zorunlu kılar.Indiceserişimi geçerli konularla sınırlar.Min/Maxdeğerleri sınırlar.
Bunları küçük sabit sınırlar için kullanın. Sırada 23. kurs: yüksek dereceli türleri benzetme.
Sıkça Sorulan Sorular
“Uygulamalı Sayısal Tür Yardımcıları” dersi ücretsiz mi?
Evet — “Uygulamalı Sayısal Tür Yardımcıları” 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.
“Uygulamalı Sayısal Tür Yardımcıları” dersinde ne öğreneceğim?
Tür aritmetiğini aralık ve uzunluk kısıtlarına uygulayı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 4. dersidir.
“Uygulamalı Sayısal Tür Yardımcıları” 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
- Demet Uzunluğuyla Sayma
- Tür Düzeyinde Toplama ve Çıkarma
- Tür Düzeyi Karşılaştırmalar
- Uygulamalı Sayısal Tür Yardımcıları