0Pricing
TypeScript Academy · Ders

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 | 3

Aralı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 | 5

Bir 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 error

Dizi 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 element

Dizinleri 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 | 2

Gü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); // error

Min 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>; // 3

Yardı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 grid

Kı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.

  • Enumerate ve Range sayı birleşim türleri üretir.
  • FixedArray tam uzunlukları zorunlu kılar.
  • Indices erişimi geçerli konularla sınırlar.
  • Min/Max değ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

  1. Demet Uzunluğuyla Sayma
  2. Tür Düzeyinde Toplama ve Çıkarma
  3. Tür Düzeyi Karşılaştırmalar
  4. Uygulamalı Sayısal Tür Yardımcıları
← TypeScript Academy Sayfasına Dön