0Pricing
TypeScript Academy · Lektion

Addition und Subtraktion auf Typebene

Erstellen Sie arithmetische Operationen durch Tupelmanipulation.

Addition und Subtraktion auf Typebene ist eine kostenlose TypeScript Academy-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des TypeScript Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der TypeScript Academy-Kurs umfasst insgesamt 4 Lektionen.

Arithmetik anhand der Länge

Bei der Darstellung über die Tupellänge wird die Addition zur Konkatenation und die Subtraktion zum Entfernen eines Präfixes. Sie rechnen mit Tupeln und lesen anschließend die Länge des Ergebnisses aus.

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

Addition

Für die Addition A + B erstellen Sie ein Tupel der Länge A und eines der Länge B, fügen beide per Spread-Syntax in ein neues Tupel ein und lesen dessen Länge aus.

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

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

Warum Konkatenation addiert

Auf ein Tupel der Länge 3 folgt ein Tupel der Länge 4, wodurch ein Tupel der Länge 7 entsteht. Wenn Sie die Striche zweier Strichlisten zusammenfügen, erhalten Sie eine gemeinsame Strichliste – daher addieren sich die Längen.

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

Subtraktion über ein Präfix

Um A - B zu berechnen, erstellen Sie ein Tupel der Länge A und inferieren es anschließend als Präfix der Länge B, gefolgt von einem Rest. Der rest hat die Länge A - B.

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

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

Subtraktion durch schrittweises Durchlaufen

Für Sub<7, 4> erstellen Sie ein Tupel der Länge 7, gleichen ein Präfix der Länge 4 ab, erfassen Rest (Länge 3) und lesen dessen Länge aus. Das entfernte Präfix umfasst genau B Striche.

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

Unterlauf gibt never zurück

Typstufen-Zahlen sind hier nichtnegativ. Wenn B > A gilt, existiert kein gültiges Präfix, das Muster schlägt fehl und das Ergebnis ist never. Sie können stattdessen standardmäßig 0 zurückgeben, wenn Sie das bevorzugen.

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

Inkrementieren und Dekrementieren

Sonderfälle der Addition und Subtraktion um eins kommen häufig genug vor, um ihnen eigene Namen zu geben. Inc hängt ein Element an, Dec entfernt eines.

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

Multiplikation durch Wiederholung

Multiplikation ist wiederholte Addition. Addieren Sie B mithilfe von Dec A-mal zu einem Akkumulator und verwenden Sie Add, um die Ergebnisse anzusammeln.

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

Der Hilfstyp BuildTuple

Jede hier vorgestellte Operation hängt von BuildTuple ab. Es ist das einzige wiederverwendbare Grundelement: Übergeben Sie eine Zahl und erhalten Sie ein Tupel dieser Länge. Halten Sie es an einer Stelle und bauen Sie den Rest darauf auf.

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

Operationen kombinieren

Da jede Operation eine Zahl entgegennimmt und eine Zahl zurückgibt, lassen sie sich frei kombinieren. Sie können Ausdrücke wie Add<Mul<2, 3>, 4> schreiben, und der Compiler wertet sie aus.

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

Praktischer Hinweis

Diese Tricks eignen sich hervorragend für kleine Anzahlen: Array-Indizes, feste Größen und begrenzte Wertebereiche. Für große Zahlen oder allgemeine Mathematik sind sie wegen der Rekursionsgrenze und der fehlenden Unterstützung für negative Zahlen unpraktisch. Verwenden Sie sie, wenn die Werte klein und statisch bleiben.

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

Schnelltest

Testen Sie Ihr Verständnis der Typarithmetik.

Zusammenfassung

Sie haben Arithmetik im Typsystem umgesetzt.

  • Add: Tupel konkatenieren und die Länge auslesen.
  • Sub: ein Präfix inferieren und die Länge des Rests auslesen.
  • Inc/Dec sind die Varianten für einen einzelnen Schritt.
  • BuildTuple ist das gemeinsame Grundelement.

Als Nächstes: Zahlen auf Typebene vergleichen.

Häufig gestellte Fragen

Ist die Lektion „Addition und Subtraktion auf Typebene“ kostenlos?

Ja — der vollständige Text von „Addition und Subtraktion auf Typebene“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des TypeScript Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der TypeScript Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Addition und Subtraktion auf Typebene“?

Erstellen Sie arithmetische Operationen durch Tupelmanipulation. Du übst TypeScript Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um TypeScript Academy zu starten?

Keine Vorkenntnisse erforderlich. TypeScript Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.

Wie lange dauert die Lektion „Addition und Subtraktion auf Typebene“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser TypeScript Academy-Lektion Code schreiben und ausführen?

Ja. Jede TypeScript Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Zählen mit der Tupellänge
  2. Addition und Subtraktion auf Typebene
  3. Vergleiche auf Typebene
  4. Praktische numerische Typ-Utilities
← Zurück zu TypeScript Academy