0Pricing
TypeScript Academy · Ders

Tür Düzeyinde Toplama ve Çıkarma

Demet manipülasyonundan aritmetik işlemler oluşturun.

Tür Düzeyinde Toplama ve Çıkarma, 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.

Uzunlukla Aritmetik

Demet uzunluğu gösterimiyle toplama birleştirme, çıkarma ise bir ön eki kaldırma hâline gelir. İşlemi demetler üzerinde yapar, ardından elde edilen uzunluğu okursunuz.

type BuildTuple<N extends number, Acc extends unknown[] = []> =
  Acc["length"] extends N ? Acc : BuildTuple<N, [...Acc, unknown]>;

Toplama

A + B toplamak için: uzunluğu A olan bir demet oluşturun, uzunluğu B olan bir demet daha oluşturun, ikisini yeni bir demete açın ve uzunluğunu okuyun.

type Add<A extends number, B extends number> =
  [...BuildTuple<A>, ...BuildTuple<B>]["length"];

type S = Add<3, 4>; // 7

Birleştirme Neden Toplama Yapar

Uzunluğu 3 olan bir demetin ardından uzunluğu 4 olan bir demet gelirse, uzunluğu 7 olan bir demet elde edilir. İki çeteledeki işaretleri birleştirmek birleşik bir çetele oluşturur; bu nedenle uzunluklar toplanır.

type A = Add<2, 2>; // 4
type B = Add<0, 5>; // 5
type C = Add<1, 6>; // 7

Ön Ek ile Çıkarma

A - B işlemini hesaplamak için: uzunluğu A olan bir demet oluşturun, ardından bunu uzunluğu B olan bir ön ekin ve geri kalanın oluşturduğu yapı olarak çıkarın. rest uzunluğu A - B olur.

type Sub<A extends number, B extends number> =
  BuildTuple<A> extends [...BuildTuple<B>, ...infer Rest]
    ? Rest["length"]
    : never;

type D = Sub<7, 4>; // 3

Adım Adım Çıkarma

Sub<7, 4> için: uzunluğu 7 olan bir demet oluşturun, uzunluğu 4 olan bir ön ekle eşleştirin, Rest değerini (uzunluğu 3) yakalayın ve uzunluğunu okuyun. Kaldırılan ön ek tam olarak B işaretidir.

type A = Sub<5, 2>; // 3
type B = Sub<4, 4>; // 0

Alt Taşma never Döndürür

Buradaki tür düzeyindeki sayılar negatif değildir. B > A olduğunda geçerli bir ön ek yoktur, desen başarısız olur ve sonuç never olur. İsterseniz bunu 0 değerine dönüştürebilirsiniz.

type A = Sub<2, 5>; // never

type SubSafe<A extends number, B extends number> =
  [Sub<A, B>] extends [never] ? 0 : Sub<A, B>;
type B = SubSafe<2, 5>; // 0

Artırma ve Azaltma

Bire göre toplama ve çıkarma işlemlerinin özel durumları, adlandırılacak kadar sık kullanılır. Inc bir öğe ekler; Dec bir öğeyi kaldırır.

type Inc<N extends number> = [...BuildTuple<N>, unknown]["length"];
type Dec<N extends number> =
  BuildTuple<N> extends [unknown, ...infer R] ? R["length"] : 0;

type A = Inc<4>; // 5
type B = Dec<4>; // 3

Tekrarlayarak Çarpma

Çarpma, tekrarlanan toplamadır. Dec ile geriye doğru sayarak ve Add ile biriktirerek, B değerini A kez biriktiriciye ekleyin.

type Mul<A extends number, B extends number, Acc extends number = 0> =
  A extends 0 ? Acc : Mul<Dec<A>, B, Add<Acc, B>>;

type A = Mul<3, 4>; // 12

BuildTuple Yardımcı Türü

Buradaki her işlem BuildTuple türüne dayanır. Bu, yeniden kullanılabilen tek temel araçtır: ona bir sayı verin, o uzunlukta bir demet alın. Bunu tek bir yerde tutun ve geri kalanını bunun üzerine kurun.

type Five = BuildTuple<5>; // [unknown, unknown, unknown, unknown, unknown]
type N = Five["length"];   // 5

İşlemleri Birleştirme

Her işlem bir sayı alıp bir sayı döndürdüğü için işlemler serbestçe birleştirilebilir. Add<Mul<2, 3>, 4> gibi ifadeler yazabilirsiniz; derleyici bunları değerlendirir.

type Result = Add<Mul<2, 3>, 4>; // 10

Uygulamaya Yönelik Uyarı

Bu yöntemler küçük sayımlar için harikadır: dizi dizinleri, sabit boyutlar ve sınırlı aralıklar. Büyük sayılar veya genel matematik için özyineleme sınırı ve negatif sayıların bulunmaması bunları kullanışsız hâle getirir. Değerlerin küçük ve statik kaldığı yerlerde kullanın.

type A = Add<8, 7>;  // 15 (fine)
// Add<5000, 5000> would exceed recursion limits

Kısa Sınama

Tür düzeyinde aritmetik konusundaki anlayışınızı sınayın.

Özet

Tür sisteminde aritmetik uyguladınız.

  • Add: demetleri birleştirin, uzunluğu okuyun.
  • Sub: bir ön ek çıkarın, geri kalanın uzunluğunu okuyun.
  • Inc/Dec, tek adımlık sürümlerdir.
  • BuildTuple, ortak temel araçtır.

Sırada: sayıları tür düzeyinde karşılaştırma.

Sıkça Sorulan Sorular

“Tür Düzeyinde Toplama ve Çıkarma” dersi ücretsiz mi?

Evet — “Tür Düzeyinde Toplama ve Çıkarma” 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ür Düzeyinde Toplama ve Çıkarma” dersinde ne öğreneceğim?

Demet manipülasyonundan aritmetik işlemler oluşturun. 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.

“Tür Düzeyinde Toplama ve Çıkarma” 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