Praktische Einführung in Javascript (JS) und Typescript (TS) | Frank Jia | Skillshare
Suchen

Playback-Geschwindigkeit


1.0x


  • 0.5x
  • 0.75x
  • 1x (normal)
  • 1.25x
  • 1.5x
  • 1.75x
  • 2x

Praktische Einführung in Javascript (JS) und Typescript (TS)

teacher avatar Frank Jia, Full-stack software engineer

Schau dir diesen Kurs und Tausende anderer Kurse an

Erhalte unbegrenzten Zugang zu allen Kursen
Lerne von Branchenführern, Ikonen und erfahrenen Experten
Wähle aus einer Vielzahl von Themen, wie Illustration, Design, Fotografie, Animation und mehr

Schau dir diesen Kurs und Tausende anderer Kurse an

Erhalte unbegrenzten Zugang zu allen Kursen
Lerne von Branchenführern, Ikonen und erfahrenen Experten
Wähle aus einer Vielzahl von Themen, wie Illustration, Design, Fotografie, Animation und mehr

Einheiten dieses Kurses

    • 1.

      Kursübersicht

      5:15

    • 2.

      Grundlegende Syntax

      5:42

    • 3.

      Einführung in Primitives

      4:43

    • 4.

      Primitives – String

      4:43

    • 5.

      Primitives – Boolean

      4:58

    • 6.

      Primitives – Null und Undefiniert

      3:34

    • 7.

      Primitives – Arrays

      10:18

    • 8.

      Primitives – Objekte

      14:54

    • 9.

      Variable Zuordnung

      4:15

    • 10.

      Typescript Extras

      4:22

    • 11.

      Bedingte Aussagen

      8:27

    • 12.

      Schleifen

      11:16

    • 13.

      Switch-Statements

      3:54

    • 14.

      Funktionen

      11:01

    • 15.

      ES5 Kurse

      5:19

    • 16.

      Course

      1:35

    • 17.

      Course

      4:53

  • --
  • Anfänger-Niveau
  • Fortgeschrittenes Niveau
  • Fortgeschrittenes Niveau
  • Jedes Niveau

Von der Community generiert

Das Niveau wird anhand der mehrheitlichen Meinung der Teilnehmer:innen bestimmt, die diesen Kurs bewertet haben. Bis das Feedback von mindestens 5 Teilnehmer:innen eingegangen ist, wird die Empfehlung der Kursleiter:innen angezeigt.

133

Teilnehmer:innen

1

Projekte

Über diesen Kurs

Javascript ist die beliebteste Programmiersprache der Welt. Es ist eines der most software mit Anwendungen für Web-, Mobile- und Backend-Entwicklung.

Typescript ist eine „getippte“ Version von Javascript, die bei Technologieunternehmen häufig Popularität gewinnt. Meistens haben große Organisationen den Drehpunkt gemacht, Javascript durch Typescript zu ersetzen.

Dieser Kurs dient als praktische Einführung in Javascript und Typescript. Wir konzentrieren uns auf Kernkonzepte im Software-Engineering anstatt jedes mögliche Feature der Sprache zu berühren (es geht bei Software nicht darum, alles zu merken, sondern um Probleme mit den Grundlagen zu lösen!). Ich glaube, dass die in diesem Kurs gelehrten Fähigkeiten dich mit dem Wissen ausstatten werden, das nötig ist, um ein autarker self-sufficient zu werden.

Einige Programmiererfahrung würden helfen, ist aber für den Kurs nicht erforderlich. Wir sehen uns im Kurs!

Triff deine:n Kursleiter:in

Teacher Profile Image

Frank Jia

Full-stack software engineer

Kursleiter:in

Hey! I'm Frank, full-stack software engineer located in Canada. I've worked on everything ranging from writing smart contracts for the blockchain to creating mobile apps with React Native.

Through Skillshare, I hope to share with your the knowledge & best practices I've gained along the way. See you in class!

Vollständiges Profil ansehen

Level: Beginner

Kursbewertung

Erwartungen erfüllt?
    Voll und ganz!
  • 0%
  • Ja
  • 0%
  • Teils teils
  • 0%
  • Eher nicht
  • 0%

Warum lohnt sich eine Mitgliedschaft bei Skillshare?

Nimm an prämierten Skillshare Original-Kursen teil

Jeder Kurs setzt sich aus kurzen Einheiten und praktischen Übungsprojekten zusammen

Mit deiner Mitgliedschaft unterstützt du die Kursleiter:innen auf Skillshare

Lerne von überall aus

Ob auf dem Weg zur Arbeit, zur Uni oder im Flieger - streame oder lade Kurse herunter mit der Skillshare-App und lerne, wo auch immer du möchtest.

Transkripte

1. Kursübersicht: Hallo zusammen, danke, dass ihr zu mir gekommen seid. Dies ist die Kursübersicht für praktische JavaScripts und TypeScript. Warum sollten Sie also TypeScript oder JavaScript lernen? Es ist eine sehr, sehr vielseitige und häufig verwendete Sprache. Es wird also von Back-End-Entwicklern verwendet , um serverseitige Logik zu erstellen. Es wird auch von den meisten Frontend-Websites verwendet. Es wird also von Frontend-Entwicklern verwendet , um Websites und Apps zu erstellen. Und dazu gehören auch mobile Apps. Und es wird häufig von allen Entwicklern für Skripting verwendet. Also, was ist JavaScript? Javascript ist eine dynamisch typisierte Sprache . Das bedeutet, dass im Codebeispiel keinerlei Typüberprüfung stattfindet. Sie sehen, Sie werden sehen, dass wir eine Variable mit dem Namen a deklarieren. Wir weisen sie zu, was eine Zahl ist. Dann können Sie aber auch sehen, dass Sie es einer Zeichenfolge zuweisen können. Das bedeutet, dass die Sprache sehr, sehr flexibel ist. Und das ist aus einer Reihe von Gründen gut, da Sie damit sehr schnell Code iterieren und schreiben können. Es kann jedoch viele Probleme verursachen, insbesondere in großen Codebasen. Also so etwas wie das. Nehmen wir an, Sie möchten sagen, dass eine Konstante b gleich a mal ist. Nehmen wir an, dies ist in einem separaten Teil des Codes enthalten. Nun, das ist okay, wenn a eine Zahl ist, also kannst du zwei mit einer beliebigen Zahl multiplizieren. Aber was ist, wenn a eine Zeichenfolge ist, dann wird ein Fehler ausgelöst und Sie werden nicht wissen, dass ein Fehler vorliegt, bis Sie diesen Code tatsächlich ausführen. Geben Sie also TypeScript ein. Typescript ist im Wesentlichen eine statisch typisierte Ebene , die sich über JavaScript befindet. Es hat JavaScript verbessert, indem es diese Typüberprüfung hinzugefügt hat, wodurch es resistenter gegen Fehler ist und Probleme einfacher zu lösen sind. Also würden Sie z. B. in TypeScript eine Konstante a deklarieren, was Hallo ist, eine Zeichenfolge. Und Sie werden sehen , dass dies dem Aussehen von JavaScript-Code sehr, sehr ähnlich ist. Aber nehmen wir an, Sie versuchen, eine andere Konstante zu deklarieren, vielleicht in einem anderen Teil der Codebasis namens b. Und Sie sagen, okay, B ist acht mal zwei. Dies wird tatsächlich einen Fehler auslösen noch bevor Sie den Code ausführen. So weißt du sofort, dass das nicht läuft und dass du den Fehler, den es entdeckt hat , für dich beheben solltest , bevor du es brauchst, um etwas zu veröffentlichen, sagen wir zur Produktion. Ich denke, der Hauptgrund , TypeScript mit JavaScript lernen und ein TypeScript verwenden zu wollen . Der erste Ansatz besteht darin, dass moderne Codebasis fast ausschließlich TypeScript verwendet. Wenn Sie in den meisten Unternehmen, deren Codebasen, zur Arbeit gehen , haben wir bereits auf TypeScript umgestellt . Javascript wird langsam zu einem Relikt der Vergangenheit. Also natürlich Ziele. Ich möchte, dass du programmieren lernst, nicht wie man auswendig lernt. Google gibt es aus einem bestimmten Grund. Und als Entwickler werden Sie die Zeit mit Google verbringen. Sie werden StackOverflow die ganze Zeit verwenden. Das Ziel beim Erlernen des Programmierens besteht nicht darin, den gesamten Dokumentationssatz für eine bestimmte Sprache oder für eine bestimmte API , die Sie verwenden, auswendig den gesamten Dokumentationssatz für eine bestimmte Sprache oder für eine bestimmte zu lernen. Ein guter Entwickler kann ein komplexes Problem in kleine Teile zerlegen , die Sie Stück für Stück lösen können. Sie können diese Teile dann mithilfe von Grundwissen lösen . Das werde ich euch in diesem Kurs beibringen . Und ein guter Entwickler kann auch auf die Dokumentation zurückgreifen. Wenn ich ständig auf die Dokumentation verweise, verwende ich Google ständig. Das ist es, was Sie erwarten sollten. Ich denke, Sie als Entwickler werden am wertvollsten, werden am wertvollsten wenn Sie wissen, wie man Probleme löst, und nicht, wenn Sie lernen, sich zu merken. Zusammenfassend lässt sich sagen, dass das Ziel dieses Kurses darin besteht Sie mit den Grundlagen auszustatten und Ihnen beizubringen, wie Sie wie ein Programmierer denken , Probleme lösen und wie Sie diese Probleme lösen können sehr grundlegendes Wissen, das Sie in diesem Kurs lernen werden. Um die Dinge einfach zu halten, verwenden wir für die meisten Übungen einen Online-TypeScript-Spielplatz. Ganz am Ende des Kurses werden wir besprechen, wie man ein konkretes Projekt aufbaut und wie man externe Abhängigkeiten einbezieht. Also Code, den andere Leute geschrieben haben, um dir beim Programmieren zu helfen. Wir werden TypeScript, lang.org, Slash Play verwenden. Es ist ein Online-Spielplatz für TypeScript-Code , den Sie direkt in Ihrem Browser verwenden können. Und Sie können den Code, den Sie schreiben, direkt im Browser ausführen . Das bedeutet also, dass Sie im Moment nichts einrichten müssen . Du kannst alle Übungen auf diesem Spielplatz schreiben. Deshalb empfehle ich dir, auf diesen Link zu gehen und ihn dir anzusehen und damit herumzuspielen. Das machen wir jetzt wirklich schnell. Wenn Sie den Link aufrufen, werden Sie feststellen, dass Sie einen ziemlich einfachen Code-Editor haben. Hier können Sie Ihren gesamten Code schreiben. Und es ist bereits mit einigen Beispielcodes gefüllt . Sie werden also sehen, dass Sie sich keine Gedanken über die Einzelheiten machen müssen. Aber im Grunde deklarieren wir hier eine Zeichenfolge, die als Beispielvariable bezeichnet wird. Wir weisen ihm die Zeichenfolge Hello World zu. Und Console.log ist eine JavaScript- oder TypeScript-Methode Sie etwas auf die Konsole oder in die Labore drucken können. Du wirst also diesen kleinen Run-Button hier sehen. Wenn du auf die Schaltfläche „Ausführen“ klickst, siehst du, dass die Laschen, es wird Hello World ausgedruckt. Also spiel mit dieser Website herum. Es sollte ziemlich einfach sein und Sie erhalten einen ziemlich einfachen Texteditor wir während des gesamten Kurses verwenden werden . Also ihr in der nächsten. 2. Grundlegende Syntax: Hallo alle zusammen. In dieser Lektion gehen wir auf einige grundlegende Codesyntax ein. Eine Anweisung in TypeScript ist im Wesentlichen ein einzelner Befehl. Es ist eine Sache, die du auf einmal ausführen möchtest. Und der Motor wurde im Wesentlichen alle Aussagen heruntergefahren und sie der Reihe nach laufen lassen. Sie werden normalerweise durch ein Semikolon abgeschlossen. müssen Sie nicht, aber es ist eine sehr gute Praxis, dies zu tun. Und normalerweise durch neue Linien getrennt. Ähnlich wie bei der Verwendung von Semikolons. Sie müssen Anweisungen eigentlich nicht durch eine neue Zeile trennen , wenn sie durch ein Semikolon abgeschlossen werden. Es ist jedoch eine sehr gute Praxis , Anweisungen immer mit einem Semikolon zu beenden und Anweisungen immer durch neue Zeilen zu trennen. In diesem Beispiel, das wir haben, sehen Sie das in der ersten Zeile, das ist eine ziemlich einfache Aussage wir haben console.log schon einmal gesehen. Und das wird im Wesentlichen auf die Konsole gedruckt. Diese Zeile ist eine Aussage. Zeile zwei ist sehr ähnlich. Wenn Sie jedoch zu Nummer 4.5 springen, werden Sie feststellen, dass, wenn Sie Anweisungen durch neue Zeilen trennen, Sie sie nicht wirklich durch ein Semikolon beenden müssen. Sie werden sehen, dass das Semikolon dort in Zeile 4.5 fehlt, aber es wird völlig einwandfrei funktionieren. Sie können es auch in die andere Richtung drehen. Sie können auf Nummer sieben sagen , dass Sie Anweisungen mit einem Semikolon beenden können, aber platzieren Sie sie in derselben Zeile. Zeile Nummer sieben ist also sehr gültig und es wird nur console.log sein. Oder wir können das auf Kosten des Protokolls tun, was aufgrund des Semikolons funktioniert. Und dieser Code wird ausgeführt. Aber schauen wir uns Zeile Nummer acht an. Wir verwenden kein Semikolon oder eine neue Zeile. Zeile, Zeile Nummer acht, wird also tatsächlich einen Fehler auslösen. Sie können diese Datei nicht ausführen, da Sie nicht zwei Anweisungen mit denen zusammenfügen können , die sie trennen. Nun, Sie können innerhalb einer einzigen Aussage tatsächlich neue Zeilen zu Ihrem Vorteil nutzen. Sie werden sehen, dass Linien dazu neigen , dass wir eine Aussage nicht zwischen diesen Zeilen beenden . Die Anweisung wird mit dem Semikolon in Zeile 12 beendet , aber Sie können eine neue Zeile einfügen, um die Lesbarkeit zu verbessern. Das ist schön, wenn Sie eine wirklich lange Aussage haben , weil Sie sie in große Teile aufteilen können , die Sie sehr leicht lesen können, ohne dass sie Ihren Bildschirm überfüllen. Lassen Sie uns also in den Editor springen und das auf die Probe stellen. Gehen Sie also in den TypeScript Playground. Lass es uns ausprobieren. Ich lösche, was schon da ist und verwende console.log. hallo. Wir werden sehen, dass das tatsächlich läuft, wenn ich renne. Aber du wirst sehen, dass es kein Semikolon gibt. Ich füge dort ein Semikolon ein. Es wird immer noch laufen. Wenn ich eine weitere Anweisung mit einem Semikolon hinzufüge , wird sie trotzdem ausgeführt. Und natürlich kann ich mich dafür entscheiden, diese mit Semikolons zu beenden , was oft eine gute Praxis ist, dies zu tun. Ich kann diese Aussagen sogar in eine neue Zeile stellen. Warum? Weil sie mit Semikolons abgeschlossen sind. Aber wenn du das siehst, wenn ich das erste Semikolon entferne, setzt du jetzt zwei Anweisungen in eine Zeile und du sagst , dass beide console.logs technisch gesehen eine Aussage sind. Damit wird also tatsächlich der Morgen erhöht, weil Sie die erste Anweisung entweder mit einem Semikolon oder einer neuen Zeile beenden müssen einem Semikolon oder einer neuen Zeile beenden . Sie werden also sehen, dass, wenn Sie den Mauszeiger darüber bewegen, dass ein Semikolon erwartet wird. Und es hilft Ihnen tatsächlich, das Problem zu lösen. Durch Einfügen eines Semikolons. Sie haben das Problem jetzt gelöst. Und Sie können diese Datei jetzt ausführen. In Ordnung, also zurück zu den Folien, nächsten Teil der grundlegenden Codesyntax oder zu den Kommentaren. Diese helfen natürlich für eine bessere Lesbarkeit. Wenn Sie komplexe Codeteile haben, geben Sie normalerweise Kommentare ein, um anderen Entwicklern und Ihrem zukünftigen Ich zu erklären anderen Entwicklern und Ihrem zukünftigen Ich zu , was Sie tun. Es gibt zwei Möglichkeiten, eine gemeinsame Sprache zu schreiben. Eins. Wenn sich Ihr Kommentar in einer einzigen Zeile befindet , können Sie zwei Schrägstriche verwenden. Und das bedeutet einen Kommentar in der einzigen Zeile. Oder wenn Sie mehrere Zeilen kommentieren möchten, können Sie den Kommentar mit einem Schrägstrich und einem Sternchen beginnen und mit einem Sternchen und einem Schrägstrich enden. Lass uns das ganz schnell ausprobieren. Also springe zum Editor und versuche, einen Kommentar zu schreiben. Mal sehen, ob der Editor es grün markiert und sagt, dass dies ein Kommentar ist, der Ihnen, dem Entwickler, im Wesentlichen sagt , dass dies nichts bewirken wird. Wenn Sie es ausführen, werden Sie feststellen, dass nichts tatsächlich auf der Konsole gedruckt wird. Es wird nichts Neues auf die Konsole gedruckt , weil dieses Skript eigentlich nichts tut. Lass uns jetzt einen Blockkommentar versuchen. Also fange ich mit einem Schrägstrich und dem Sternchen an. Ich kann hier schreiben, was ich will. Und wann immer ich das beenden will, mache ich den Stern und den Schrägstrich. Das war's also im Wesentlichen in Bezug auf die grundlegende Codesyntax Die beiden grundlegendsten Teile sind wirklich Aussagen und Kommentare. Die Übungen dafür werden also ziemlich kurz sein. Versuchen Sie zunächst, das Konsolenprotokoll zu verwenden. also auf dem Spielplatz, HelloWorld zu protokollieren und versuchen Sie, die Nummer 42 zu protokollieren. Das Schöne an Console Log ist , dass sie tatsächlich die meisten Dinge protokollieren können. Sie müssen also nicht mit Saiten herumspielen, wie Sie es mit einer anderen Sprache tun könnten. Sie können 42 direkt in die Konsolenprotokolle eintragen. Also probiere das aus. Versuchen Sie als Nächstes, einen einzeiligen Kommentar und einen Blockkommentar zu schreiben. Ein Blockkommentar bedeutet also einen mehrzeiligen Kommentar. Probiere es aus. Lass es mich wissen, wenn du Fragen hast und ich sehe euch im nächsten. 3. Einführung in Primitives: Hallo Leute, willkommen zurück. In dieser Lektion gehen wir auf Primitive ein. Primitive sind grundlegende Typen, die in die Sprache eingebaut sind. Ein Beispiel für ein Primitiv ist also der Zahlentyp, der eine Zahl darstellt, z. B. zwei oder 3,5. Und durch das Zusammenstellen von Primitiven können Sie komplexere Strukturen erstellen , die Sie in Ihr Programm integrieren können. Variablen und Konstanten enthalten Werte, und oft handelt es sich bei diesen Werten um diese Primitive. Ein Tal kann fast alles sein. Auch dies kann Primitive wie eine Zahl, ein Objekt oder ein Array beinhalten , und diese können auch Funktionen enthalten. Deshalb werden wir uns später im Kurs eingehender all diesen Primitiven mit all diesen Primitiven und Funktionen befassen. Aber stellen Sie sich für den Moment einfach eine Variable und eine Konstante als Namen für etwas vor, das einen gepoolten Wert enthält. Sie können Variablen und Konstanten mit var, let oder comments deklarieren . Nochmals, wir werden das später besprechen. Jede variable Schrägstrichkonstante hat einen Namen, sodass Sie später in Ihrem Programm oder an einer anderen Stelle in Ihrem Programm darauf zurückgreifen können. Der Hauptunterschied zwischen Variablen und Konstanten besteht, wie der Name schon sagt, darin, dass Variablen sich ändern können, Konstanten jedoch nicht. Variablen deklarieren Sie mit Bar oder Lead. Aber realistisch gesehen würden Sie var niemals wirklich verwenden. Verwenden Sie immer Lead und Sie können nach Belieben über alle Unterschiede zwischen der Deklaration mit var oder let googeln . Aber realistisch gesehen, bleib einfach bei let und schon kann es losgehen. Variablen können verschiedenen Werten desselben Typs neu zugewiesen werden. Dies gilt nur in JavaScript, aber es ist wahr in TypeScript , woran wir vorerst festhalten. Nehmen wir an, Sie haben eine Variable , die die Zahl enthält. Nennen wir diese Variable a. Sie können ihr zuerst einen Wert von fünf zuweisen. Und später im Programm können Sie es erneut einem Wert von zehn zuweisen. Konstanten hingegen werden mit const definiert und können nicht neu zugewiesen werden. Die allgemeine Regel lautet , dass Sie Konstanten verwenden sollten , sofern dies nicht unbedingt erforderlich ist. Es ist viel einfacher, Ihr Programm zu debuggen und über Ihr Programm nachzudenken, wenn Sie Konstanten statt Variablen haben. In Ordnung? Also einige Namenskonventionen. Variablen und Konstanten werden normalerweise in CamelCase benannt. Also so etwas wie Preis ist gleich zehn, oder Vorname ist Frank mit großgeschriebenem Namen. Konstanten hingegen können manchmal in Großbuchstaben vorkommen. Das ist sehr selten und ich sehe es nicht sehr oft. Wenn Sie also bei CamelCase bleiben , ist es normalerweise gut. Lassen Sie uns also kurz auf einige Beispiele für die Deklaration und Verwendung von Variablen eingehen. In Ordnung, also auf dem Spielplatz , den wir hier haben, deklarieren wir zuerst eine Variable. Eine Variable, wie Sie sich vielleicht erinnern, die mit dem Schlüsselwort left deklariert wurde. Dann geben wir ihm einen Namen. Also nennen wir es einfach meine Variable und weisen wir ihr den Wert zehn zu. Versuchen wir nun, meine Variable zu protokollieren. Und wenn ich renne, wirst du sehen, dass es an zehnter Stelle ist. Der Wert meiner Variablen ist also die Zahl Zehn. Jetzt können Variablen neu zugewiesen werden, also versuchen wir das. Weisen wir es 20 zu und protokollieren wir es dann erneut auf der Konsole. Wenn Sie den Code erhalten, sehen Sie, dass zehn und dann 20 auf der Konsole gedruckt weil der Wert meiner Variablen bei zehn beginnt und dann auf 20 neu zugewiesen wird. Versuchen wir nun, Konstanten zu deklarieren. Also verwende ich das Schlüsselwort const und nenne es meine Konstante und geben wir ihm einen Zeichenkettenwert. Also ein SDF. Versuche, das zu protokollieren. Und Sie werden sehen, dass ein FCF auf die Konsole gedruckt wird. Aber versuchen wir es zu ändern. Also technisch gesehen, wenn meine Konstante eine Konstante ist, solltest du sie nicht ändern können. Lassen Sie uns das auf die Probe stellen. Sie werden sehen, dass Sie eine Fehlermeldung erhalten. Und wenn Sie den Mauszeiger darüber bewegen, heißt es, kann es meiner Konstante nicht zugewiesen werden, weil es eine Konstante ist. Und du kannst das tatsächlich ausführen. Eine kurze Demo der Variablenbenennung sowie der Deklaration von Variablen und Konstanten mit let und const. Okay, also zurück zu den Folien, die unsere Einführung in Primitive sowie Variablen und Konstanten abschließen. Also einige Übungen, die ich hier angegeben habe, sie sollten ziemlich einfach sein. Probieren Sie sie aus und zögern Sie nicht, uns zu kontaktieren, wenn Sie Fragen haben . Wir sehen uns im nächsten. 4. Primitives – String: Hallo Leute, in dieser Lektion besprechen wir unser erstes Primitiv und es wird Zeichenketten geben. Alle Zeichenketten sind, ist ein Stück Text. Sie können drei Möglichkeiten deklarieren. Sie werden durch einfache Anführungszeichen, doppelte Anführungszeichen oder Backticks umschlossen. Anführungszeichen und doppelte Anführungszeichen werden also synonym verwendet. Back-Ticks werden jedoch für die Zeichenketteninterpolation verwendet. Das bedeutet also, den Wert einer anderen Variablen oder Konstanten innerhalb der Zeichenfolge selbst zu platzieren . In TypeScript ist string ein TypeScript-Typname. Lassen Sie uns das Beispiel durchgehen. Also zuerst deklarieren wir eine Variable mit dem Schlüsselwort let, wir nennen sie einige Texte und wir sagen, dass Doppelpunkt und Zeichenfolge TypeScript mitteilen, dass wir eine Zeichenkettenvariable deklarieren. Wir weisen es Hallo zu. Und wir deklarieren eine Konstante , eine Zahl von 42, die wir später verwenden werden. Die Doppelpunkt-Zeichenfolge teilt dem Typ Script also mit, dass einige Texte vom Typ string sind. Aber wenn Sie sofort Hallo zuweisen, benötigen Sie den Doppelpunkt nicht da TypeScript daraus schließen kann, dass der Typ einiger Texte bereits eine Zeichenfolge ist, weil Sie ihn bereits mit einem füllen Schnur. Weil manche Texte eine Variable sind. Sie können es neu zuweisen. Du kannst es der Welt zuordnen. Der Wert einiger Texte wird also nach diesem Zeitpunkt weltweit sein. Sie können es erneut zuweisen. Sie werden also sehen, dass wir einige Texte mit einfachen Anführungszeichen deklarieren. Wir weisen es mit doppelten Anführungszeichen neu zu. Und es gibt keinen wirklichen Unterschied zwischen den beiden Deklarationsarten. Aber für die Zeichenketteninterpolation, was wir in der letzten Zeile dort tun. Wir verwenden Backticks. Um die Zeichenketteninterpolation zu verwenden. Was Sie tun, ist, Ihre Belastung hinter die Zecken zu wickeln und dort, wo Sie möchten, dass sie den Wert einer anderen Variablen oder Konstanten einträgt. Sie beginnen mit dem Dollarzeichen und den beiden Klammern. Sie werden sehen, dass wir den Wert der Summenzahl in diese Zeichenfolge eingeben. Und wenn Sie einige Texte console.log verwenden würden, würde ich sagen, eine Zahl ist 42, weil Sie das Dollarzeichen und die Klammer durch die Summenzahl dazwischen durch den tatsächlichen Wert einer Zahl ersetzen die Klammer durch die Summenzahl dazwischen , was ist 42. Lassen Sie uns nun auf einige Beispiele auf dem Spielplatz eingehen. Okay, jetzt versuchen wir, eine Konstante vom Typ string zu deklarieren und meinen Bildschirm zu schreiben. Und wir geben eine Zeichenfolge vom Typ ts an. Wir geben eine Variable gegenüber einer Zeichenfolge an. Wir sagen also ausdrücklich, dass der Mikrofontyp hier Saite ist. Wenn ich das also durch eine Zahl ersetzen würde, werden Sie tatsächlich feststellen, dass dieser Fehler besagt , dass die Zahl dem Typ String nicht zugewiesen werden kann. Aber nehmen wir an, Sie deklarieren es sofort. Sie benötigen die TypeScript-Typdeklaration eigentlich nicht , da TypeScript einfach anfängt zu folgern, dass der Typ von MyString bereits eine Zeichenfolge ist weil Sie ihn bereits füllen. Lassen Sie uns nun eine weitere Zeichenfolge deklarieren. Wir erstellen nur eine Konstante, meine andere Zeichenfolge mit dem Wert von this als weitere Zeichenfolge. Versuchen wir es mit Frühling und Fibrillation. Also gehe ich einfach sofort zu console.log. Auch bei der Zeichenketteninterpolation müssen Sie Backticks verwenden. Das ist es also, was ich hier mache. Ich sage, das erste ist, dass wir mit dem Dollarzeichen beginnen und die beiden eckigen Klammern meine Zeichenfolge sind. Und dann ist die zweite Saite. Weil ich das kann, denke ich darüber nach, was hier gedruckt wird. Wie funktioniert die String-Interpolation? Ist das die Deklaration , wo interpoliert werden soll? Also z.B. das Dollarzeichen mit den Klammern und meine Zeichenfolge werden zur Laufzeit durch den tatsächlichen Wert ersetzt . Also, während wir diese Zeichenfolge durchgehen, zuerst Doppelpunkt, und dann ersetzen Sie den Wert meines Bildschirms. Es wird der erste Doppelpunkt lauten. Dies ist eine Zeichenfolge und das Gleiche gilt die zweite. Lass uns versuchen, es auszuführen. Und Sie werden sehen, dass das so ist, wie wir es erwarten würden. Gehen wir nun zurück zu den Folien. Ordnung, damit ist der Abschnitt über Saiten abgeschlossen. Wir haben hier eine Übung zur Zeichenketteninterpolation. Dies erfordert tatsächlich etwas Googeln. Ich möchte, dass Sie zwei verschiedene Möglichkeiten finden, das Zeichenkettenskript JavaScript mit zwei separaten Konstanten zu erstellen das Zeichenkettenskript . Versuchen Sie es also und wenden Sie sich an uns, wenn Sie Fragen haben. Wir sehen uns im nächsten. 5. Primitives – Boolean: Hallo Leute. In diesem Abschnitt gehen wir auf das boolesche Primitiv, Boolesche oder einfach auf wahr oder falsch ein. Ein boolescher Wert mit dem Kleinbuchstaben b ist der Typ-Skripttypname. Sie können einen booleschen Wert erstellen und ihn aus einem anderen Typ konvertieren. Sie können also z. B. eine Zahl tatsächlich in eine Zahl konvertieren , indem Sie den booleschen Konstruktor B in Großbuchstaben verwenden oder zwei Ausrufezeichen vor der Variablen selbst verwenden. Leider können Boolesche Werte in JavaScript und TypeScript tatsächlich ziemlich kompliziert werden . Und darauf werden wir später in den Folien näher eingehen. Lassen Sie uns das Beispiel durchgehen. Sie können einen booleschen Wert wie jede Variable deklarieren, indem Sie ihr einfach den Typnamen geben oder sogar den Typnamen weglassen wenn Sie ihn sofort Wahr oder Falsch zuweisen. In Zeile 2.3 werden Sie also sehen, dass wir einen booleschen Wert deklarieren, wie Sie es bei jeder anderen Variablen tun würden. Natürlich ist der Typname optional, wenn Sie sofort Wahr, Wahr oder Falsch zuweisen. In den Zeilen 6.7 wird es jedoch ziemlich interessant. Sie werden sehen, dass wir tatsächlich einen booleschen Wert von einem anderen Typ umwandeln können . Und das bedeutet, dass Sie einen Typ in den booleschen Typ konvertieren . Sie werden also sehen, dass, wenn Sie console.log boolescher Wert von zwei verwenden, es wahr ist, aber ein boolescher Wert von Null ist falsch. Das ist wirklich sehr seltsam und es ist anderen Sprachen nicht ähnlich denen ein boolescher Wert in TypeScript in JavaScript einfach wahr oder falsch ist in TypeScript in JavaScript einfach wahr oder falsch Sie können tatsächlich einen booleschen Wert aus einem anderen Typ konvertieren. Und es gibt einige sehr seltsame Randfälle, die Sie online finden , und wir werden später auch auf den Folien auf einige davon eingehen. Der Zahlen halber sollten Sie jedoch wissen, dass jede andere Zahl außer Null wahr umgewandelt wird und nur Null in falsch umgewandelt wird. Ähnlich wie bei anderen Sprachen können Sie mithilfe eines Vergleichs einen booleschen Wert erstellen. Also z.B. Zeile 1.2 ist ziemlich einfach, oder? Du sagst, es ist für mehr als zwei und das stimmt natürlich. Ist vier kleiner oder gleich zwei , und das ist falsch. Aber wenn Sie console.log vier gleich der Zeichenfolge vier haben, werden Sie sehen, dass es tatsächlich wahr ausgibt. Was ein bisschen kontraintuitiv sein kann, weil Sie nicht glauben würden, dass eine Zahl Vier der Zeichenfolge für entspricht. Aber irgendwie stimmt das in TypeScript. Das bringt uns also zum Thema strikte Gleichheit. Im Gegensatz zu anderen Sprachen müssen Sie in TypeScript Gleichheitsoperatoren verwenden. Eine ist die grundlegende Gleichheit, die aus zwei Gleichheitszeichen besteht. Wenn Sie dies verwenden, wenn die Typen unterschiedlich sind. Wenn Sie also z. B. eine Zahl und eine Zeichenfolge vergleichen, konvertiert Type Script tatsächlich in denselben Typ und vergleicht dann die Werte. Im Gegensatz dazu bedeutet die strikte Gleichheit mit dem dreifachen Gleichheitszeichen, dass die Typen identisch sein müssen, damit ein Vergleich wahr ist. Und eine Faustregel lautet, immer, immer strikte Gleichheit in TypeScript zu verwenden. Wo sonst könnten Sie auf viele Bugs stoßen. Gehen wir also auf das Beispiel dort ein, die erste Anweisung, also Zeile Nummer drei, ist im Grunde gleich der Zeichenfolge, denn das ist tatsächlich wahr weil TypeScript die Zeichenfolge für zwei konvertiert, die Zahl vier, und zwar über den Zahlenkonstruktor, wie wir bereits auf den Folien gesehen haben . Und wenn es konvertiert, ist die Zahl 44 natürlich gleich vier und das gibt dir wahr. Wenn Sie jedoch strikte Gleichheit verwenden, weil die Zahl vier nicht denselben Typ wie die Zeichenfolge dafür hat, erhalten Sie falsch, was Sie normalerweise erwarten würden. Dies führt nun auch zum nächsten Thema, nämlich ob etwas wahr oder falsch ist. Weil Sie alles in JavaScript und TypeScript in einen Boolean konvertieren können . Dinge werden als wahr bezeichnet, wenn sie in Wahr umgewandelt werden können , und sie werden als falsch bezeichnet , wenn sie in Falsch umgewandelt werden können. Und wieder wird das sehr, sehr kompliziert, was die Ursache für viele Fehler ist , die wir in der Produktion sehen. In den Beispielen verwenden wir also Syntax der Alternativen , um einen booleschen Wert zu erzeugen. also das doppelte Ausrufezeichen verwenden, werden Sie feststellen, dass, weil Null in falsch umgewandelt wird, wir es falsch nennen, und weil zwei zu wahr konvertieren, wir es als wahr bezeichnen. Im Allgemeinen sind Booleans also ziemlich einfach, aber Sie müssen auf Wahrhaftigkeit und Einfallsreichtum achten . Hier sind ein paar Übungen. Weisen Sie zunächst dem Tal, ob negative Zwei kleiner oder gleich Null ist, eine Variable mit dem Namen Ae Tal, ob negative Zwei zu. Sie müssen hier also einen Vergleich verwenden. Versuchen Sie es mit der Konsolenprotokollierung a und ist nicht das, was Sie erwarten würden , um festzustellen, ob die leere Zeichenfolge ist, also nichts in der Zeichenfolge ist wahr oder falsch. Und versuchen Sie, den Unterschied zwischen der Verwendung des grundlegenden Gleichheitsoperators und des strikten Gleichheitsoperators zu vergleichen des grundlegenden Gleichheitsoperators und . Und vergleiche die leere Zeichenfolge mit der Zahl Null. Wir sehen uns im nächsten. 6. Primitives – Null und Undefiniert: Hallo Leute. In dieser Lektion gehen wir zu den Primitiven Null und Undefined über. Auf der Basisebene geben Ihnen sowohl Null als auch undefined einen Wert für nichts, was seltsam ist, darüber nachzudenken. Sie werden oft in einem TypeScript-Unionstyp verwendet , auf den wir später näher eingehen werden. Der Unterschied zwischen der Verwendung von null und undefined besteht darin, dass Sie normalerweise Null verwenden würden, um anzuzeigen, dass kein Wert vorhanden ist. Undefiniert bedeutet dagegen, dass der Wert nicht zugewiesen wurde. Es gibt einen subtilen Unterschied zwischen den beiden. Aber stellen Sie sich vorerst einfach sowohl null als auch undefined als Werte vor , die nichts repräsentieren. Gehen wir nun zum Beispiel über. Sie werden sehen, dass wir in Zeile Nummer drei eine Variable a mit dem Typ Zahl oder Null deklarieren . Und dieser OR-Operator, bei dem es sich um eine gerade vertikale Linie handelt, wird als Erstellen eines Unionstyps bezeichnet. Das sehen Sie im Beispiel hier. Wir können es zunächst Null zuweisen, aber wir können es auch zuweisen, und wir können es erneut dem Nullblock zuweisen. Dies teilt Typescript also im Wesentlichen mit, dass sowohl Zahlen als auch der Nulltyp absolut gültig für die Variable a sind. Gehen wir zu Unionstypen von etwas mehr ein. Wie ich bereits erwähnt habe, bietet Ihnen ein Unionstyp eine Bestellbedingung mehrere Basistypen, und es gibt keine Begrenzung für diese Anzahl von Basistypen. Also im Beispiel hier wiederum kann die Variable a, oder jetzt sagt sie, entweder eine Zahl oder eine Zeichenfolge oder Null sein . Wir weisen ihm zunächst den Wert string zu, aber Sie werden sehen, dass wir ihn in Zeile 3.4 auch einer Zahl zuweisen können oder wir ihn Null zuweisen können. In diesem speziellen Fall benötigen Sie tatsächlich die Typdeklaration. Sie benötigen also den Doppelpunkt für eine Zahl oder eine Zeichenfolge oder Null, oder wenn Sie ihn sofort einer Zeichenfolge zuweisen, dann denkt TypeScript, dass a nur vom Typ string sein kann , indem die explizite Typdefinition angeben für den Unionstyp. Sie teilen TypeScript mit, dass , okay, dies zunächst eine Zeichenfolge ist, aber es ermöglicht auch, a zwei Zahlen zuzuweisen und a Null zuzuweisen. Ich werde ein bisschen Wahrhaftigkeit und Unklarheit, sowohl null als auch undefiniert, zu Ihrer False durchgehen. Und das bedeutet, dass, wenn Sie undefined und null in einen booleschen Wert konvertieren, die Buchkonvertierung in Falsch erfolgt. Interessanterweise, wenn Sie versuchen, Null und Undefined miteinander zu vergleichen wobei grundlegende Gleichheit beim Zusammenfügen auf Zeile Nummer drei undefiniert ist, ist gleich Null. Das stimmt tatsächlich. Wenn Sie dagegen strikte Gleichheit haben, ist undefined nicht gleich Null, da es sich um unterschiedliche Typen handelt . Auch hier weiß ich, dass es etwas verwirrend wird, aber das sind einige Dinge, die man nur von Hand wissen muss, weil es Eigenheiten der Sprache selbst sind. Nun, mit einigen Übungen, habe ich versucht, einen Typ zu finden, der entweder eine Zahl oder ein undefinierter Typ sein kann . Definieren Sie also z. B. eine Konstante a und legen Sie dass sie Werte sowohl von Zahlen als auch von undefiniert annimmt. Zweitens habe ich versucht, einen Typ zu finden , der einer der folgenden sein kann. Also string, null und undefined. Sie können versuchen, es einer Variablen zuzuweisen und sicherzustellen , dass das, was Sie tun, korrekt ist, indem Sie eine Zeichenfolge zuweisen, bei Null signieren und sie undefiniert zuweisen. In allen drei Fällen sollte gültiger Code vorhanden sein und es sollte keine Fehler von TypeScript geben. Ordnung, Leute, lasst mich wissen, wenn ihr Fragen habt und ich sehe euch im nächsten. 7. Primitives – Arrays: Hallo Leute, in dieser Lektion gehen wir auf Arrays ein. Arrays sind einfach Listen von Dingen. Lassen Sie uns direkt in ein Beispiel eintauchen, denn eine Erhöhung lässt sich am besten anhand des Codes demonstrieren . Die Typskriptsyntax für die Deklaration eines Arrays besteht also darin, dass der Basistyp von den beiden Klammern gefolgt wird. Oder alternativ können Sie auch das Array mit einem großen a mit dem Basistyp in den eckigen Klammern verwenden , wie Sie im Kommentar in Zeile eins und Zeile Nummer zwei sehen werden , wir deklarieren zuerst R, was ein Zahlenfeld ist. Sie werden sehen, dass wir den ersten Typ von TypeScript verwenden , die Typdeklaration. Verwenden Sie also die Zahl mit den beiden eckigen Klammern und wir erstellen ein leeres Array. Dies bedeutet, dass R zunächst einfach eine Liste von Zahlen sein wird und es zu keine Elemente in dieser Liste enthält Beginn, wenn sie initialisiert wird, keine Elemente in dieser Liste enthält . In Zeile Nummer drei deklarieren wir die zweite Kunst. Wir verwenden die alternative Syntax mit einem Strahl. Wir machen genau das Gleiche erstellen ein leeres Zahlenfeld für den zweiten Arm. Sie werden sich erinnern, dass Sie früher, als wir andere Arten von Primitiven verwendeten, andere Arten von Primitiven verwendeten, die TypeScript-Typdeklaration mit einem Doppelpunkt und den Typ nicht verwenden müssen die TypeScript-Typdeklaration mit einem Doppelpunkt , wenn Sie das initialisieren sofort konstant. Dies gilt jedoch nicht für ein leeres Array, denn wenn Sie ihm ein leeres Array geben, weiß TypeScript nicht, welche Art von Elementen Sie in dieses Array einfügen möchten. Wenn Sie also möchten, dass Ihr Array typisiert wird, sollten Sie den Typ explizit für Arrays deklarieren. Wenn Sie jedoch nicht mit einem leeren Array initialisieren, können Sie TypeScript den Typ tatsächlich ableiten lassen. also in Zeile Nummer acht Wenn Sie also in Zeile Nummer acht die Zeichenfolge r haben und sie mit Hallo und Welt füllen, sie mit Hallo und Welt füllen, kann TypeScript tatsächlich daraus schließen, dass die Zeichenfolge r vom Typ string array ist. Arrays können auch verschachtelt werden. Schauen wir uns also Zeile Nummer 14 an. Der Typ liest von links nach rechts. Also zuerst haben wir ein Number Array. Jedes Basiselement hier ist also ein Zahlenarray, und wir haben ein Array von Zahlenarrays, was bedeutet, dass wir ein verschachteltes Array von Arrays haben. Es wird etwas verwirrend, aber du wirst sehen, was ich mit dem Beispiel hier meine. Sie werden sehen, dass wir eine Liste haben, aber jedes Element in dieser Liste ist eine Liste für sich. Das erste Element ist also die Liste mit 1.2 und das zweite Element der Liste ist eine weitere Liste mit 3.4. Also einige grundlegende Array-Operationen. Um also anhand seiner Position auf ein Element des Arrays zuzugreifen, verwenden Sie einfach den Namen der Array-Variablen und dann die eckigen Klammern mit dem Index, auf den Sie zugreifen möchten. Ähnlich wie bei anderen Sprachen beginnen Indizes jetzt bei Null. Aus dem Bild hier sehen Sie also, dass das erste Element innerhalb des Arrays den Index Null hat, das zweite einen Index von eins und so weiter und so weiter. Nehmen wir an, Sie haben einen Strahl mit 12345, Sie hatten Zugriff auf das dritte Mitglied des Arrays, das den Wert drei hat, mit unseren eckigen Klammern. Und als Nächstes können Sie die Länge eines bestimmten Arrays mithilfe der R-Punktlänge ermitteln. Also z.B. aus dem Bild, wenn du es dort r Punktlänge nennen würdest, hättest du fünf zurückgegeben. Sie können mit r dot push etwas am Ende des Arrays hinzufügen. Und in diesen Klammern können Sie alles, was Sie wollen, an das Ende des Arrays setzen . Sie können ein Element auch mit r dot pop vom Ende des Arrays entfernen . Diese Methode gibt tatsächlich das Element zurück , das gepoppt wurde. Wenn Sie also r dot pop auf dem Strahl im Bild dort aufrufen würden , wäre das Ergebnis fünf, weil das das letzte Element ist. Und unsere danach haben nur noch 1234. Und nehmen wir an, Sie würden rdot length danach aufrufen , würde vier zurückgeben, weil die Länge des Arrays jetzt für einige weitere Beispiele ist, um die Informationen zuvor auf den Folien zu überprüfen. In Zeile Nummer zwei erstellen wir ein Nummernfeld. Also, wie ich bereits erwähnt habe, um ein leeres Array zu deklarieren und TypeScript die Zahl als Typ angeben zu lassen, müssen Sie explizit sagen, dass Zahl r vom Typ number array ist. Und online Nummer vier, weil wir einige Elemente zunächst im Array vom Typ string angeben. Typescript weiß, dass string args eine Liste von Zeichenketten ist. Zeile Nummer sechs wird in den Index aufgenommen, um darauf zuzugreifen. Nehmen wir an, Sie möchten auf das erste Element einer Zeichenfolge zugreifen . Verwenden Sie die eckigen Klammern mit Null, weil Indizes bei Null beginnen. Und was das zurückgeben wird, ist das erste Element im Array, das Hallo ist. als Nächstes in die Eigenschaft length gehen, werden Sie feststellen, dass, wenn wir Zahl r Punktlänge nennen, diese Null ist, weil es sich um ein leeres Array handelt. Und dann sagen wir, okay, wir wollen ein Element eins auf das Nummernfeld verschieben. Sie werden sich erinnern, dass Push ein Element am Ende des Arrays platziert und tatsächlich die neue Länge des Arrays zurückgibt. Neue Länge ist jetzt also eins. Und nachdem Sie gedrückt haben, werden Sie sehen, dass die Zahl r jetzt eine einzelne Elementliste mit einem Element ist . Darin drin. Und wenn Sie den Längenoperator will mehr verwenden, werden Sie feststellen, dass die Länge jetzt eins ist, weil Sie dem Array ein Mitglied hinzugefügt haben. Gehen Sie also zurück zu string are, wenn Sie pop aufrufen würden und Sie werden sich daran erinnern, dass pop das letzte Element des Arrays entfernt und es zurückgibt. Sie werden sehen, dass das letzte Zeichenkettenelement hier World ist, denn das ist das Element, das am Ende des Arrays entfernt wurde. Und wenn Sie die Zeichenfolge erneut protokollieren würden, werden Sie sehen, dass die Welt entfernt wurde. Es ist also eine einzelne Elementliste mit Hallo darin. Lass uns also wirklich alles auf dem Spielplatz durchgehen . Versuchen wir, ein boolesches Array zu deklarieren. Also vollständiges Array. Wenn ich es jetzt nicht tippe, wirst du sehen, dass, wenn du den Mauszeiger über das Bull-Array bewegst, es ist, irgendeines oder eine Liste von irgendwelchen einzugeben. Es ist vom Typ eine Liste von beliebigen. Und wir werden später auf jeden Typ eingehen. Dies ist jedoch keine gute Praxis wenn Sie ein leeres Array haben. Da wir also wissen, dass es eine Liste von Booleans sein wird, lassen Sie uns das gleich definieren. Also verwenden wir die erste Art von Syntax. Sie werden also sehen, dass wir auch die alternativen Auswirkungen der Verwendung von Arrays mit den eckigen Klammern nutzen können. Nun, wenn ich bool are deklarieren und einige Werte hineinlegen würde. Sie werden sehen, dass wenn Sie den Mauszeiger über TypeScript , darauf schließen, dass Bulara vom Typ Boolean Array ist . Lassen Sie uns nun versuchen, etwas auf dieses Array zu übertragen. Also füge am Ende ein Element hinzu. Lassen Sie uns den Wert von false erhöhen. Also, wenn wir console.log, werden oder sollten wir das sein, was wir erwarten. Also wahr, falsch und falsch. Und was erwarten wir, wenn wir die neue Länge protokollieren ? Wir hatten also zwei Mitglieder und dann haben wir ein anderes verschoben. Die Länge sollte also drei Mal hintereinander sein. Und es ist wieder das, was wir erwartet hatten. Versuchen wir nun, das letzte Mitglied zu bekommen. Also rufe ich pop auf, wodurch das letzte Mitglied des Arrays entfernt wird. Lass uns weitermachen und console.log das Ergebnis davon. Was passiert also, wenn Sie aus dem Array springen? Was kehrt Pop zurück? Und es wird tatsächlich das letzte Element zurückgeben , das aus dem Array entfernt wurde. Und lassen Sie uns auch das Array selbst nach dem Pop protokollieren, die Operation ist abgeschlossen. Also lass uns das versuchen. Schauen wir uns also die letzten beiden Zeilen an. Sie werden sehen, dass der Wert von r dot pop, der das letzte Element entfernt, falsch ist, weil das hier das letzte Element war. Also entfernt es falsch und es gibt es zurück und es meldet es ab. Wenn wir uns dann nach der Pop-Operation ganz am Ende des Abmeldepools befinden , werden Sie sehen, dass er nur wahr und falsch enthält , weil wir durch den Aufruf von pop den letzten falschen Wert aus dem entfernt haben Reihe. In Ordnung, das war also eine schnelle Demo. Gehen wir zurück zu den Folien und gehen wir auf einige Übungen ein. Definieren Sie also zuerst ein leeres Array sowohl Zeichenketten - als auch Zahlenelemente enthält. Ein kleiner Hinweis: Sie können einen Unionstyp verwenden , um Bereiche zu definieren. Versuchen Sie nun, Hallo zu drücken und versuchen Sie auch, zu drücken. Da r sowohl Zeichenketten- als auch Zahlentypen enthalten kann, sollte dies ohne Fehler funktionieren. Und jetzt versuche, dem Ergebnis von r dot pop den Wert einer neuen Konstante Ae zuzuweisen . Ist es das, was du erwartest? Und versuchen Sie, den Mauszeiger über a zu bewegen, um zu sehen, was TypeScript in Bezug auf die Eingabe von a nach B leitet. Schließlich weisen Sie den Ergebnissen unserer Punktlänge den Wert einer Konstanten , unsere Länge, zu. Erwartest du das? Definieren Sie zweitens ein boolesches Array das die folgenden Elemente enthält. Wahr, wahr, falsch, falsch. Drittens, was passiert, wenn Sie versuchen, auf einen Array-Index zuzugreifen , der nicht existiert? , Sie haben anhand des Beispiels hier Nehmen wir an, Sie haben anhand des Beispiels hier ein Array von r gleich eins zu einem Zahlenarray deklariert . Was passiert, wenn Sie versuchen, auf den Index von zwei Elementen zuzugreifen ? Versuche, das abzumelden und schau, was es zurückgibt. Versuchen Sie abschließend, ein Zahlenfeld von 123,4 zu definieren. diese Übung müssen Sie nun etwas googeln. Versuchen Sie also, die Dokumentation für den Array-Typ JavaScript oder TypeScript von diesen Hunden finden, um einen Weg zu finden, das Element eins zu entfernen. Das ist also das erste Element des Arrays. Stattdessen wird es dauern. Du kannst Pop hier nicht verwenden. nun erneut in der Dokumentation einen Weg, Finden Sie nun erneut in der Dokumentation einen Weg, das Element eins wieder am Anfang hinzuzufügen . Sie können Push also nicht verwenden , da Push an das Ende des Arrays geht. Kannst du versuchen, einen an den Anfang zu setzen? Lass es mich wissen, wenn du Fragen hast und wir sehen uns im nächsten. 8. Primitives – Objekte: Hallo Leute, in dieser Lektion gehen wir auf Objekte ein. Wir werden Objekte anhand eines Beispiels lernen. Und dieses Beispiel dient dazu, ein Auto zu definieren. Lassen Sie uns bei unserem ersten Versuch verwenden, was wir wissen. Lassen Sie uns die Eigenschaft separat definieren. So können wir Marke, Modell und Jahr definieren , indem wir ihnen Auto voranstellen. Und das sind natürlich Typen, die wir schon einmal gesehen haben. Karmic ist also vom Typ String, da das Automodell und das Fahrzeugjahr der Typnummer entsprechen. Aber wie Sie sich vorstellen können, geraten, wenn Sie dieses Auto in Ihrem Code weitergeben würden kann es ziemlich schnell außer Kontrolle geraten, wenn Sie dieses Auto in Ihrem Code weitergeben würden, weil Sie alle diese Felder einzeln durchgehen müssen. Also hier kommt das Objekt. Jedes Objekt ist eine logische Gruppe von Informationen. Und ein Objekt ist einfach eine Zuordnung eines Schlüssels zu einem Wert. Und jede Zuordnung eines Schlüssels zu einem Wert wird als Eigenschaft des Objekts bezeichnet. Also lasst uns das Auto neu definieren. Jede der folgenden Zeilen definiert also eine Eigenschaft. Wir hätten einen Markenschlüssel mit dem Wert von Honda, einen Modellschlüssel mit dem Wert von Civic und einen Schlüssel des Jahres mit dem Wert von 2022. Also, wie machen wir das in TypeScript? Schnittstellen und Typen definieren die Form eines Objekts in TypeScript. Die übliche Konvention besteht darin, die Eigenschaftsnamen, auch Schlüssel genannt, in Kamelbuchstaben zu schreiben. Wir haben also zwei verschiedene Arten, Auto zu definieren, und diese beiden werden normalerweise synonym verwendet. Als erstes verwenden wir das Schlüsselwort Interface. Wir sagen, die Schnittstelle heißt Auto. Und wir sagen, okay, make ist eine Eigenschaft des Autos mit einer Zeichenfolge. Wie das Modell. Das Modell hat eine Art von Schnur. Und für Jahr hat Jahr eine Art von Zahl. Alternativ können wir den Schlüsselwort-Typ verwenden. Beachten Sie jedoch, dass wir ein Gleichheitszeichen nach dem Auto benötigen, um einen Typ zu definieren, im Gegensatz dazu benötigen Sie kein Gleichheitszeichen für eine Schnittstelle. Wir machen genau dasselbe, wenn einen Typ anstelle einer Schnittstelle verwenden. Und in diesem Zusammenhang meinen sie dasselbe. Jetzt definiert ein TypeScript-Typ nur die Form eines Objekts. Es erstellt kein Objekt. Lassen Sie uns nun versuchen, das Objekt zu erstellen. Schon wieder. Sie werden sehen, dass wir das Schlüsselwort const verwenden. Wir sagen Const My Car. Und dieses Mal sagen wir, dass mein Auto nicht eine Art von boolescher Zeichenfolge oder Zahl ist, sondern eine Art von boolescher Zeichenfolge oder Zahl ist, dass es sich um einen Autotyp handelt, dem es sich um eine benutzerdefinierte Schnittstelle oder einen benutzerdefinierten Typ handelt , den wir zuvor definiert haben. Jetzt können wir sagen, okay, für dieses spezielle Auto, meine Autohersteller, Honda-Modelle, Civic, und das Jahr ist 20,22. Sie werden also sehen, dass wir mit einer Konstante und nicht mit einem ausgewählten definieren, was bedeutet, dass wir mein Auto nicht in ein anderes Auto umdefinieren können. Wir können jedoch die Eigenschaften meiner Karten ändern, sodass wir die Markeneigenschaft meines Autos auf, sagen wir Ford, ändern können. Und das ist absolut erlaubt, wenn es eine Konstante ist. Das ist also eine Sache, auf die Sie achten sollten. Jetzt. Lassen Sie uns anhand von Beispielen näher auf Objekte eingehen. Erstens, wie ändern wir eine Eigenschaft und wie greifen wir überhaupt auf eine Immobilie zu? Dies kommt also auf die Warnung zurück wir auf der vorherigen Folie hatten. Wir definieren mein Auto wieder. Sie können es jedoch nicht neu definieren, da es eine Konstante ist, wenn es als Variable definiert ist. Also mit links kannst du mein Auto auf der Linie Nummer acht zu etwas anderem umdefinieren . Es gibt jedoch zwei Möglichkeiten auf eine Eigenschaft auf dem Objekt zuzugreifen. Die erste, Punktsyntax, was Sie in Zeile 13 tun. Also sagen wir meine Automarke und in diesem Fall weisen wir die Marke meines Autos von Conda zu, um es uns leisten zu können. Dies wird als Dot Style Access bezeichnet. Die nächste Möglichkeit, auf eine Eigenschaft zuzugreifen , ist der Zugriff im Indexstil. Das ist also vergleichbar mit dem Zugriff auf etwas innerhalb eines Arrays mit dem Index, daher der Name. Aber statt eines Zahlenindexes geben wir ihm den Eigenschaftsnamen oder den Schlüssel. Zeile Nummer 14 sehen Sie also mein Modell mit eckigen Klammern, was bedeutet, dass wir auf die Modelleigenschaft meines Autos zugreifen die Modelleigenschaft meines und das in Ranger ändern. Ab der Linie 13.14 wird meine Automarke vorne sein und das Modell wird Ranger sein. Lassen Sie uns nun ein wenig in Schnittstellen und Typen eintauchen. Sie können Schnittstellen und Typen tatsächlich verschachteln , um Formen für verschachtelte Objekte zu definieren. Eigenschaften können auch als nullable bezeichnet werden, was bedeutet, dass sie entweder null oder undefiniert sein können. Lassen Sie uns ein bisschen darauf eingehen. Zeile Nummer eins werden Sie sehen, dass wir das Schlüsselwort interface verwenden , um einen Objekttyp zu definieren. Die erste Eigenschaft dort ist aufgrund des Fragezeichens vor dem Doppelpunkt optional . Das bedeutet, dass die erste Eigenschaft entweder boolesch, also wahr oder falsch, oder undefiniert sein kann. Die zweite Eigenschaft, wie sie definiert ist , ist genau dasselbe. Es ist nur eine alternative Syntax. Das Fragezeichen ist im Wesentlichen eine Abkürzung dafür, dass dies boolesch oder undefiniert sein kann. Oder Sie können es explizit mit einem Unionstyp angeben, wie Sie es für die zweite Eigenschaft sehen. Zeile Nummer sechs haben wir einen anderen Objekttyp definiert, und hier kommen wir zu verschachtelten Objekten. Wir sagen also, dass verschachteltes Objekt ein Schlüssel anderen Objekttyp mit dem Typ eines Objekttyps ist. Das heißt, wenn Sie ein Objekt eines anderen Objekttyps haben, hat es eine Eigenschaft namens verschachteltes Objekt. Und diese Eigenschaft wird ein Objekt mit einer Eigenschaft erster Eigenschaft haben. Wir werden anhand von Beispielen etwas näher darauf eingehen. Aber so verschachtelt man Objekte. Sie können dies auch inline definieren. Das zweite verschachtelte Objekt ist also eine weitere Möglichkeit, ein verschachteltes Objekt zu definieren. In diesem Fall hat ein anderer Objekttyp einen Feldnamen, ein zweites verschachteltes Objekt mit einem verschachtelten Feldnamen, first nested, was vom Typ string ist, oder zweitverschachtelt, was entweder vom Typ Zahl ist oder nicht. Lassen Sie uns nun versuchen, diese Typen zu verwenden. Schauen wir uns zunächst Eigenschaften an, die auf Null gesetzt werden können. also zu einem Objekttyp zurückkehren, werden Sie feststellen, dass sowohl die erste als auch zweite Eigenschaft nicht erkennbar sind. Und das heißt, wenn wir keine Eigenschaft definieren , die null ist, wird sie standardmäßig auf undefined gesetzt. Also online Nummer sechs, wir definieren OBJ als irgendeinen Objekttyp. Wir geben an, dass die zweite Eigenschaft wahr ist, und das ist gültig, weil die zweite Eigenschaft wie Sie sehen, entweder boolesch oder undefiniert ist. Wir definieren jedoch nicht erste Eigenschaft und da sie null ist, wird sie standardmäßig auf undefined gesetzt. Gehen wir nun zu einem Beispiel mit verschachtelten Objekten über. Sie werden sich also daran erinnern, dass ein anderer Objekttyp zwei verschachtelte Felder hat, verschachteltes Objekt und ein zweites verschachteltes Objekt. Wir können nun wieder OBJ deklarieren, verschachtelte Objekte. Wir können ihm ein leeres Objekt geben, denn denken Sie daran, dass Objekttyp ein Nullfeld für die erste Eigenschaft und die zweite Eigenschaft hat . Und das bedeutet , dass, wenn Sie die Eigenschaft OBJ dot nested object dot first verwenden, Standardwert auf undefined gesetzt ist. Jetzt werden Sie sehen, dass wir OBJ für die zweiten verschachtelten Objekte deklarieren . Wir deklarieren diese Felder sofort. Also first nested ist eine Zeichenfolge , weil wir sie als Typstring deklariert haben. Und zweitens verschachtelt müssen wir es für Null deklarieren. Lassen Sie uns nun auf den TypeScript-Spielplatz gehen und ein wenig mit Objekten herumspielen , um zu beschreiben, was wir in den Folien gelernt haben . Versuchen wir, eine Schnittstelle für ein Autohaus zu definieren. Wir werden das Interface-Schlüsselwort verwenden. Lassen Sie uns nun überlegen, welche Immobilien bei einem Autohaus Sinn machen? Vielleicht wollen wir die Autos auflisten. Lassen Sie uns zunächst versuchen, eine Fahrzeugschnittstelle zu definieren. Eine kurze Notiz hier. Die Konvention zur Definition des Namens einer Schnittstelle oder eines Typs besteht darin, ihn groß zu schreiben. Also so etwas wie Auto mit einem großen C oder Autohaus mit einem großen D. Wenn Sie mehrere Wörter in Ihrer Benutzeroberfläche haben, würden Sie die ersten Buchstaben des Wortes groß schreiben. Also mein Typ, z. B. zurück zum Auto, lass uns benutzen, was wir vorher hatten. Also machen Sie aus dem Typ Zeichenfolge, Modell dem Typ Zeichenfolge und dem Jahr der Typennummer. Wir möchten also sagen, dass das Autohaus Autos zum Verkauf anbietet. Lassen Sie uns also ein Schlüsselauto definieren, das zum Verkauf steht. Und wir werden sagen, dass es eine Liste von Autos ist. Sie werden sich also daran erinnern , dass die Array-Syntax auf folgende Weise deklariert ist. Damit sagen wir, dass zum Verkauf stehende Autos eine Reihe von Autos sind. Versuchen wir nun, einen Inline-Typ zu definieren, vielleicht einen Standort für das Autohaus. Ich werde die geschweiften Klammern verwenden um zu definieren, dass es sich um ein Objekt handelt. Und ein Standort könnte einen Breitengrad haben , der vom Typ Nummer ist, und einen Längengrad, der dem Typ Nummer entspricht. Versuchen wir nun auch, unbekannte Eigenschaften zu definieren. Vielleicht möchten wir wissen, ob das Autohaus online tätig ist. Also vielleicht ist es online. Und ich verwende das Fragezeichen , um zu sagen, dass dies auf Null gesetzt werden kann. Boolean macht hier Sinn. Alternativ können Sie undefined innerhalb des Unionstyps explizit definieren . Oder wenn Sie es vorziehen, können Sie Null verwenden. Ich werde vorerst Null verwenden. Lass uns versuchen, ein Auto zu bauen. Also ich sage Const, erstes Auto. Und ich werde ihm eine Art Auto geben. Sie werden sehen, dass wir keine der erforderlichen Eigenschaften definieren, wenn ich es leer lasse . Wenn Sie also den Mauszeiger über den Bereich bewegen, teilt Ihnen TypeScript tatsächlich , dass Ihnen diese Eigenschaften fehlen. Also lasst uns sie jetzt bevölkern. Und lassen Sie uns versuchen, ein anderes Auto zu definieren. Jetzt. Lassen Sie uns abschließend mit der Definition eines Autohauses fortfahren. Also werde ich Autos zum Verkauf definieren. Und Sie werden sich daran erinnern, dass die Definition eines Arrays die eckigen Klammern verwendet. Und ich werde sagen, dass zum Verkauf stehende Autos das erste Auto und das zweite Auto enthalten werden . Standort, ich werde auch Inline definieren. Und wir können sagen, dass der Breitengrad Null und der Längengrad vorerst Null ist. Denken Sie daran, dass wir auch so etwas wie diesen Ort tun können . Diese Syntax hier besagt im Wesentlichen, dass die Art des Standorts mit dem Standortfeld im Autohaus identisch ist . Also Breitengrad und Längengrad. Wenn Sie hier mit der Maus über das Gebiet fahren, werden Sie tatsächlich sehen, dass uns die Breiten - und Längengradzahlen fehlen. Also können wir weitermachen und das jetzt bevölkern. Dann können wir es hier in der Reihe weitergeben. In Ordnung. Zurück zum Autohaus, ich werde nur der Kürze halber den Standort in der Liste halten. Und Sie werden sich daran erinnern, dass wir, sobald wir diese definiert haben, immer noch eine Fehlermeldung erhalten, obwohl sie online ist und optional ist. Dies liegt daran, dass wir diese Eigenschaft nicht deklarieren müssen, wenn wir die Abkürzung ist online mit einem Fragezeichen verwenden dass wir diese Eigenschaft nicht deklarieren müssen, wenn wir die Abkürzung ist online mit einem Fragezeichen . Wenn wir jedoch den Union-Typ verwenden, müssen wir explizit angeben, dass is online undefiniert ist, oder ist es online entweder boolesch oder null, dann müssen wir es nein geben. Schließlich können Sie Objekte wie bei Basistypen console.log verwenden. Also lass uns das jetzt versuchen. Wenn wir den Code ausführen, werden Sie sehen, dass wir dies erwarten. Das Autohaus ist ein Objekt mit einem Schlüssel für zum Verkauf stehende Autos mit dem Wert als Reihe von, dies ist unser erstes Auto und dies ist unser zweites Auto. Es hat auch ein Ortsfeld Längengrad Null und Breitengrad Null. Und zu guter Letzt haben wir es online, um es zu erfahren. Damit ist unsere Demo abgeschlossen und ich werde euch wieder auf den Folien sehen. Ordnung, also zuerst Übungen für Objekte aus der Online-Dokumentation, finden Sie einen Weg, alle Schlüssel im Objekt als Array abzurufen. Wie Sie sich erinnern werden, sind Schlüssel Werten zugeordnet. Versuchen Sie, einen Weg zu finden, um alle Schlüssel von einem Objekt zu erhalten , und spielen Sie auf dem TypeScript-Spielplatz damit herum , um sicherzustellen, dass es funktioniert. Versuchen Sie zweitens, eine Schnittstelle für einen Personentyp zu finden. Die erste Frage ist also, welche Eigenschaften für eine Person sinnvoll sind? Das ist ein bisschen offen, aber es lehrt dich und bringt dich dazu objektorientiert zu denken. Nehmen wir nun an, eine Person hat Eigenschaften von first name , also vom Typ String, LastName, auch String, und Ihre Geburt, die vom Typ Nummer ist, hat versucht, dies als Schnittstelle zu finden und als Type-Skripttyp. Lassen Sie uns nun eine Person für Objekt C erstellen Fügen wir nun eine Eigenschaft mit dem Namen Geburtsland hinzu , die auf Null gesetzt werden kann, und geben Sie diese Eigenschaft vom Typ string ein. Und zusätzlich zur nullable Eigenschaft können Sie sie entweder standardmäßig auf undefined setzen oder Sie können explizit angeben, dass es sich um eine Zeichenfolge oder Null handelt. Spielen Sie nun mit der Syntax im Punktstil sowie mit der Syntax im Indexstil herum , um die Eigenschaften Ihres Personenobjekts zu ändern. Finden Sie abschließend einen Weg, Ihr Person-Objekt einem völlig neuen Personenobjekt zuzuweisen . Bisher haben wir die Person, die Sie erstellen, als Nachteil deklariert , aber Sie müssen dies möglicherweise ändern, um Ihr Personenobjekt neu zuzuweisen. Lass es mich wissen, wenn ihr Fragen habt und ich werde euch in der nächsten Lektion sehen. 9. Variable Zuordnung: Hallo Leute, dies ist eine kurze Lektion zur Variablenzuweisung. Wenn Sie aus anderen Programmiersprachen kommen, haben Sie wahrscheinlich von den Begriffen Zuordnung durch Referenz und Zuordnung nach Wert gehört . In dieser Lektion gehen wir auf eine Variablenzuweisung für JavaScript und TypeScript ein. Wenn Sie keinen Hintergrund in der Programmierung haben und das alles völlig neu für Sie ist. Mach dir darüber keine allzu großen Sorgen. Ich gebe einige Beispiele, um den Unterschied zu veranschaulichen. Es gibt auch umfangreiche Online-Ressourcen falls Sie näher darauf eingehen möchten. In Ordnung, was meinen wir also mit Zuweisung nach Wert im Vergleich zu Zuordnung durch Referenz? Im Wesentlichen wollen wir die Frage beantworten, was passiert, wenn Sie eine Variable einer anderen zuweisen? Nehmen wir an, Sie haben eine Konstante mit dem Namen a und möchten Konstante b gleich a zuweisen. Wenn Sie nach Wert zuweisen, bedeutet das, dass wir den Wert von a in die Konstante b kopieren . Das in JavaScript in TypeScript gilt für Zeichenketten, Zahlen und Boolesche Werte. Der Wert von a selbst wird also nach b kopiert. Andererseits bedeutet Referenz, Andererseits bedeutet Referenz, dass alles B ein Verweis auf a ist. Wenn Sie den Wert von B erhalten möchten, sagt B schau dir a an und nimm den Wert von a so, wie er gerade ist. Wir kopieren nicht den aktuellen Wert. Stattdessen halten wir nur einen Verweis auf den Wert von a. Dies gilt in JavaScript und TypeScript für Objekte und Arrays. Dies lässt sich am besten anhand eines Beispiels veranschaulichen. Im ersten Beispiel in Zeile Nummer eins deklarieren wir a, was gleich zwei ist, und wir deklarieren B, was gleich a ist. Jetzt erinnern Sie sich, dass eine Zahl nach Wert zugewiesen wird. Was wir hier sagen ist, dass wir den Wert von a, also zwei, kopieren und ihn in b eingeben. Also b entspricht jetzt der Online-Nummer drei, wir erhöhen jetzt p um zwei. Zwei plus zwei ist also vier. Zu diesem Zeitpunkt hat B also einen Wert von vier. Aber a, weil sein Wert kopiert wurde, ist völlig unabhängig von B. Also a ist es immer noch, weil Sie a nicht inkrementieren, sondern B24 inkrementiert haben. nun in Zeile Nummer fünf Schauen wir uns nun in Zeile Nummer fünf ein Beispiel für eine Referenzzuweisung an. Wir deklarieren eine Konstante C, die ein Array ist. Es ist eine Reihe von Zahlen, also 1.2. Nun weisen wir C eine neue Konstante D zu. Arrays werden per Referenz zugewiesen. Was D gerade macht , ist , dass es auf den Wert von C zeigt, aber D ist kein neuer Wert. Also der Wert von c, dieses Array wurde nicht nach d kopiert. Wenn wir pop auf C aufrufen mutieren oder ändern wir also das vorhandene Array. Wir entfernen das letzte Element zwei. Deshalb erwarten wir jetzt, dass C nur ein Element hat , und zwar eins. Aber wenn du nun auf D zugreifst, zeigt D, um zu sehen, wenn du versuchst , den Wert von D zu finden , wird D einfach sagen, sieh dir den aktuellen Wert von C an . Aber jetzt, da C nur ein Element hat, d wird nur ein Element haben , wenn Sie es ausdrucken. Hier sind ein paar Übungen Wenn Sie weitere Informationen dazu benötigen, können Sie bei Bedarf Fragen stellen oder online eingehendere Nachforschungen anstellen. Erstens gibt es eine Zeichenfolge, die der Zuweisung nach Wert oder Referenz folgt. Das ist also eher das Testen Ihrer Wissensnummer um ein Array von Zeichenketten mit den Elementen a, B und C zu deklarieren . Finden Sie nun in der Online-Dokumentation einen Weg, den Wert dieses Arrays in ein anderes zu kopieren . Array-Variable. Sie werden sich also an ein Rasiermesser oder eine Aufgabe per Referenz erinnern, aber gibt es eine andere Möglichkeit , dies zu tun, sodass Sie tatsächlich den Wert dieses Arrays kopieren. Okay, um das zu testen, solltest du Dinge wie push, pop auf dem neuen Array aufrufen können, ohne das Original zu ändern. Log, sowohl das Original als auch das Neue. Alle Operationen, die Sie auf dem neuen Array ausführen , sollten sich nicht auf das ursprüngliche Array auswirken. Und ein kleiner Hinweis hier, versuchen Sie, in JavaScript nach dem Spread-Operator zu suchen. 10. Typescript Extras: Hallo Leute, dies ist eine kleine Lektion zu einigen TypeScript-Notizen, die nicht in einen bestimmten Abschnitt passten. Es gibt also zwei einzigartige Typen , die TypeScript anbietet, wobei der erste und der zweite unbekannt sind. Es gibt auch eine Art von Operator, den ein JavaScript bereitstellt , um Ihnen den primitiven Basistyp für jede Variable zu geben. Also zu den TypeScript-Typen Das erste ist, was das bedeutet, dass diese Variable alles sein kann. Es kann eine Zahl sein, es kann eine Zeichenfolge sein, kann ein Objekt, ein Array sein. Wir wissen nicht, was es ist, aber es kann alles sein. Unbekannt ist sehr ähnlich. Es weist jedoch darauf hin, dass der Typ dieser Variablen nicht bekannt ist. Es gibt einen sehr subtilen Unterschied zwischen Unbekannten und der Unterschied wird bei der Produktion deutlich. Moment müssen Sie jedoch nur wissen, dass any und unknown normalerweise für Typen verwendet werden , bei denen Sie sich über den Variablentyp nicht sicher sind . Type ist ein Operator , der Ihnen einen Zeichenkettennamen für den aktuellen Typ einer bestimmten Variablen gibt. Die Einzelheiten darüber, wie diese funktionieren und wann sie zu verwenden sind, würden in diesem Einführungskurs wirklich nicht berücksichtigt. Lassen Sie uns einige Beispiele durchgehen. Online. Erstens, wir deklarieren eine Variable a vom Typ unbekannt. Wir sind uns also nicht sicher , was dieser Wert ist. Wir geben ihm zuerst eine Zeichenfolge, aber Sie können sehen, dass Sie ihn zwei zuweisen können. Und das ist sehr gültig, weil TypeScript im Wesentlichen sagen wird, wir wissen nicht, was diese Variable ist. Also werde ich alles online zulassen. Nummer drei, wir machen etwas Ähnliches. Deklaration von B hat jede Bedeutung , die b annehmen kann. Zeile Nummer fünf können Sie jedoch sehen, dass wir es auch einem Zahlentyp zuweisen können . Eine Zeilennummer für den Typ b ist eine Zeichenfolge. also das angeben, erhalten Sie die Zeichenfolge in der Zeile zurück . Für den Typ der B-Variablen handelt es sich um eine Zeichenfolge. Das ist es also, was es protokollieren wird. Aber nachdem Sie es einer Nummer neu zugewiesen haben und den Typ protokolliert haben , wird er erneut als Nummer angezeigt. Verwendung von typeof ist also eine gute Möglichkeit, den Typ einer bestimmten Variablen zur Laufzeit zu finden . Und um das Ganze für diese Lektion abzuschließen, werden wir etwas mehr über Unionstypen vorstellen. Während sich Ihre Codebasis weiterentwickelt, möchten Sie wahrscheinlich Typen extrahieren und ihnen Namen geben. Und Sie können Typen einem benutzerdefinierten Typ mit Ihrem eindeutigen Namen zugewiesen werden . Also zum Beispiel wenn Sie einen Tiertyp haben möchten, der entweder die Schnurkatze oder der Schnurhund sein kann. Man kann sagen, Typ Tier. Und wir deklarieren einen eindeutigen benutzerdefinierten Typ namens Tier. Und du sagst einfach, es ist entweder Katze oder Hund. Oder nehmen wir an, ein Identifizierungstyp kann entweder eine Zeichenfolge oder ein boolescher Wert sein. Sie können dasselbe tun, indem Sie sagen, dass der Typbezeichner entweder eine Zeichenfolge oder ein boolescher Wert ist. Einige Beispiele finden Sie hier. also zu diesem Tiertyp zurückkehren, werden Sie sehen, dass wir eine Konstante von Tier, Typ Tier erstellen und sie der Katze zuordnen können . Wenn Sie jedoch versuchen, eine Typkonstante Tier zuzuordnen , sagen wir mal Auto, das weder eine Katze noch ein Hund ist. Geben Sie script ein, es wird eine Fehlermeldung angezeigt. Gehen wir also auf einige Übungen ein, Nummer eins, und versuchen Sie, die Art der NRA zu protokollieren. Und das Ergebnis könnte etwas verwirrend sein und Sie können sich darauf einlassen. Aber auch dies würde den Rahmen dieses Einführungskurses sprengen . Deklarieren Sie zweitens einen speziellen Nummerntyp. Also ein benutzerdefinierter Typ, der drei verschiedene Werttypen annehmen kann , 12.42. Versuchen Sie nun, eine Konstante zu erstellen, meine spezielle Zahl mit diesem Typ, und versuchen Sie, sie auf zehn zu setzen. Solltest du in der Lage sein und versuchen , den Bereich zu inspizieren , der herauskommt. Schließlich deklarieren Sie es als leeres Array mit Elementen eines beliebigen Typs. Deklarieren Sie also einen Array-Typ. Aber für jedes Element ist der Typ dieses Elements beliebig. Und jetzt überlege dir, welche Art von Objekten du auf dieses Array verschieben kannst. Könnten Sie eine Zeichenfolge, eine Zahl, einen booleschen Wert verschieben ? Probiere es auf dem Spielplatz aus. Lasst mich wissen, wenn ihr Fragen habt und wir sehen uns in der nächsten Lektion. 11. Bedingte Aussagen: Hallo Leute, in dieser Lektion gehen wir auf bedingte Aussagen ein. Es ist das erste von vielen Kapiteln im Kapitel Flusskontrolle. Die grundlegende bedingte Anweisung in JavaScript in TypeScript besteht aus if, else-if und else. einer bedingten Anweisung können Sie Code in Abhängigkeit von einer Bedingung ausführen , unabhängig davon, ob diese als wahr oder falsch bewertet wird. Eine bedingte Anweisung beginnt immer mit einem if. Sie können eine beliebige Anzahl zusätzlicher Else-wenn-Blöcke haben. Und zu guter Letzt noch ein Block. Der Else-Block ist aber auch optional. Die sehr grundlegende bedingte Aussage ist also eine einzelne Bedingung ohne IPS oder Else. Sie können auch eine Else hinzufügen, wenn Sie möchten, oder beliebige Anzahl von anderen, falls dazwischen. Wenn man sich den folgenden Pseudocode ansieht, ist dies eine Syntax für eine bedingte Anweisung. Sie werden sehen, dass, wenn wir eine bestimmte Bedingung in Klammern setzen , diese Bedingung im Wesentlichen ein Ausdruck ist, entweder als wahr oder falsch bewertet wird. Wenn es wahr ist, führen Sie den Block direkt nach der if-Anweisung aus. Wenn Sie eine „ else if“ -Aussage haben, wird diese neue Bedingung bewertet. Und wenn diese Bedingung wahr ist, dann führe den Block direkt danach aus, anders-wenn. Wenn alles andere fehlschlägt, keine Bedingung in der if- oder einer anderen if-Datei übereinstimmt, wird der Code im else-Block ausgeführt. Lassen Sie uns ein Beispiel durchgehen. Nehmen wir an, Sie definieren eine Zahl und machen daraus fünf. Wir definieren zuerst ein Wenn und sagen, okay, wenn eine Zahl kleiner als zehn ist, es also fünf, weniger als zehn. Console.log, kleine Zahl. Andernfalls, wenn eine Zahl kleiner als 20 ist, protokollieren wir die mittlere Zahl, andernfalls wenn eine Zahl nicht kleiner als 20 und nicht weniger als zehn ist, die große Zahl. Wenn unsere Zahl also fünf ist, werden wir sehen, dass die if-Bedingung wahr bewertet wird, und wir protokollieren eine kleine Zahl. Aber wenn eine Zahl beispielsweise 15 ist, dann protokollieren wir die mittlere Zahl. Und wenn eine Zahl 25 ist, werden wir eine große Zahl protokollieren. Hier gehen wir ein bisschen nebenbei auf boolesche Operatoren ein . Es gibt drei, die Sie kennen sollten Der erste ist der Not-Operator. Also das Ausrufezeichen vor der Variablen selbst. Das bedeutet, den booleschen Wert umzukehren. Das heißt, wenn Sie ein Wahr haben und ein Ausrufezeichen davor platzieren, wird es falsch und falsch wird wahr. Der nächste Operator, der Operator, impliziert, dass alle Bedingungen, die Sie zusammen mit den beiden Ampersanden verbinden, wahr sein müssen, damit dieser Ausdruck als wahr ausgewertet alle Bedingungen, die Sie zusammen mit den beiden Ampersanden verbinden, wahr sein müssen, damit wird. Schließlich haben wir den OR-Operator. Dies bedeutet nur, dass eine dieser Aussagen, die Sie mit den doppelten vertikalen Linien verbinden , wahr sein muss, damit dieser Ausdruck als wahr ausgewertet eine dieser Aussagen, die Sie mit den doppelten vertikalen Linien verbinden , wahr sein muss, damit dieser wird. Gehen Sie hier auf einige Beispiele ein. In Zeile Nummer eins sehen wir, dass wahr und wahr natürlich wahr sein werden, weil beide Bedingungen zutreffen. Wenn wir jedoch wahr und wahr und falsch haben, weil eine davon falsch ist, wird diese gesamte Aussage als falsch gewertet. In Zeile Nummer drei sagen wir wahr oder falsch, und weil eine davon wahr ist, die erste, ist das Ergebnis wahr. In Zeile Nummer vier haben wir falsch oder falsch oder wahr. Jetzt spielt es keine Rolle, wie viele Falschmeldungen wir haben, solange eine wahr ist, wird die gesamte Aussage wahr sein. Und genau das passiert hier. letzte Mal, wenn der Not-Operator das Ausrufezeichen vor False verwendet , wird der boolesche Wert invertiert, was Ihnen den Wert true gibt. Die nächste bedingte Anweisung wird als ternärer Operator bezeichnet. Und es ist im Wesentlichen eine Abkürzung für eine if, else-Aufgabe. Zuweisung, was bedeutet, dass Sie den Wert einer Variablen zuweisen . Der ternäre Operator ist also im Wesentlichen das Fragezeichen direkt nach der Bedingung. Und Sie trennen den wahren und den falschen Wert durch einen Doppelpunkt. Dies besagt also im Wesentlichen, dass der Wert einer Variablen den wahren Wert annimmt. Wenn die Bedingung als wahr bewertet wird. Andernfalls, wenn die Bedingung falsch ist, geben Sie ihr den Wert falsch. Lassen Sie uns ein Beispiel durchgehen. Nehmen wir an, eine Zahl ist fünf. Jetzt wollen wir eine Zahl konstruieren, die definitiv auch dann ist, wenn unsere Zahl alles sein kann, was wir wollen oder jede beliebige Zahl, die wir wollen. Hier sagen wir eine Zahl modulo zwei. Wenn Sie also den Modulo-Operator nicht gesehen haben, erhalten Sie im Wesentlichen den Rest, nachdem Sie ihn durch zwei geteilt haben. Wenn eine Zahl modulo zwei wahr ist, dann gib eine Zahl mal zwei zurück. Andernfalls, wenn eine Zahl modulo zwei falsch ist, gibt diese Zahl selbst nur eine Zahl zurück. Also lass uns darüber nachdenken. Wenn Sie eine ungerade Zahl haben und den Rest haben, wenn er durch zwei geteilt wird, ist der Rest immer eins. Und die Wahrheit von einem ist wahr, oder? Eins hat die Zahl in JavaScript, die als wahr ausgewertet wird. Wenn diese Bedingung also zutrifft, haben wir eine ungerade Zahl. Wie machen wir eine ungerade Zahl gerade? Wir multiplizieren es mit zwei. Andernfalls muss eine Zahl modulo zwei Null sein, wenn sie falsch ist . Und wir wissen, dass, wenn sie Null ist, eine Zahl gerade sein muss. Deshalb haben wir gerade eine Nummer zurückgegeben , weil sie schon gerade ist. Weiter. Schauen wir uns den Operator für den Unterricht in Wissensfarben an. Dies ist im Wesentlichen eine Abkürzung für die Angabe eines Standardwerts für jede Variable, die NULL-fähig ist. Wenn Sie sich erinnern, bedeutet Nullable, dass es entweder Null oder undefiniert sein oder einen tatsächlichen Wert annehmen kann. Im Pseudocode haben wir also eine Konstante, eine Variable. Wir sagen, dass wir zuerst einen Nullwert haben. Dieser Wert kann also Null oder undefiniert sein. Wenn es Null oder undefiniert ist, geben Sie einer Variablen den Standardwert. Andernfalls, wenn ein Wert mit einem Nullwert definiert ist, geben Sie ihm einfach den Wert , für den er definiert ist. Gehen wir hier auf ein Beispiel ein: Nehmen wir an, wir haben einen Nullwert, entweder eine Zeichenfolge oder ein undefinierter Wert sein kann. Und wir geben es zunächst undefiniert. Was passiert, wenn wir einen Nullwert protokollieren? Zwei, Fragezeichen und Standard? Da ein Nullwert undefiniert ist, geben wir den Standardwert an, sodass der Standardwert protokolliert wird. Wenn wir jedoch okay sagen, ist neuartiger Wert gleich Hallo, es ist nicht mehr undefiniert. Wenn wir nun console.log mit diesem Koaleszenzoperator verwenden, wird der Standardwert nicht verwendet, da Nullwert bereits gefüllt ist. Hallo wird also niedrig sein. Gehen wir also zu einigen Übungen, Nummer eins, definieren Sie eine Zahl und schreiben Sie dann eine if-else-Anweisung , die auch dann ausgegeben wird, wenn die Zahl gerade ist und ungerade, wenn die Zahl ungerade ist. Dies geht also auf unser Beispiel in den Folien zuvor über die Verwendung des Modulo-Operators zurück . Zweitens hast du Zugriff auf Mathe Dot Random, also kannst du das in den Spielplatz eingeben und es wird dir eine Zufallszahl 0-1 geben , oder? Ein ternärer Ausdruck, der eine konstante Dehnung zuweist. Sie erstellen also eine neue konstante Zeichenfolge mit dem Wert big, wenn dieser Zufallsaufruf mit mathematischen Punkten größer als 0,5 ist, und klein, wenn er nicht größer als 0,5 ist. Erstellen Sie abschließend zwei boolesche Variablen, erste Bedingung und zweite Bedingung. Nummer eins: Schreiben Sie eine if-Anweisung, die beide Werte als wahr ausgibt. Wenn beide Variablen wahr sind. Die Zahl, um eine if-Anweisung zu schreiben , die mindestens eine ausgibt, ist wahr. Wenn eine oder beide Bedingungen zutreffen. Nummer drei: Schreiben Sie eine If-Anweisung , die ausgibt, dass keine wahr ist. Wenn beide Variablen falsch sind. Lasst mich wissen, wenn ihr Fragen habt und wir sehen uns in der nächsten Lektion. 12. Schleifen: Hallo Leute. In dieser Lektion werden wir uns mit Wiederholungen befassen. Loops ist eine Möglichkeit, Iterationen durchzuführen. Mit anderen Worten, es ist eine einfachere Möglichkeit , etwas viele, viele Male auszuführen. Sie ermöglichen es uns, erneut zu iterieren, was bedeutet, immer wieder etwas zu tun. In dieser Lektion werden vier Arten von Schleifen behandelt. Es gibt noch viele, viele weitere Möglichkeiten , etwas tatsächlich durchzugehen, aber diese sind die beliebtesten, die ich sehe. Diese vier sind die While-Schleife, die For-Schleife, die For-Schleife und die für jede Schleife. Fangen wir mit einer Weile an. Im Pseudocode lautet es While condition is true und die Klammern enthalten eine Art TypeScript-Bedingung. Der Codeblock nach der While-Anweisung ist der Code, den Sie immer wieder ausführen. in einem Beispiel Lassen Sie uns in einem Beispiel zunächst die Zahl gleich Null setzen. Also, wenn Num vom Typ Zahl ist, sage ich, dass Zahl kleiner als drei ist. Also jedes Mal, wenn wir durch die Schleife iterieren und num kleiner als drei ist, fahren Sie mit der Ausführung des Codes und des folgenden Codeblocks fort. Wir sehen, dass wir console.log num plus plus sind. Und falls Sie sich erinnern, erhöht der Postfix-Operator die Zahl nach der Ausführung der Anweisung. Also , wenn die Zeile Nummer drei zum ersten Mal Kopf ist, ist Num Null. Num ist also kleiner als drei, was bedeutet, dass die Bedingung wahr ist. Führen Sie nun den Codeblock console.log num aus , der Null ist, und dann ist Inkrement num nicht eins. Jetzt gehst du zurück zum Anfang der Schleife. Zeile Nummer drei, Zahl ist also eins und kleiner als drei. Also mach weiter. Es wird eins protokolliert und jetzt ist Zahl zwei. Die Bedingung ist wieder wahr. Wenn num zwei ist, wird dieselbe Protokollanweisung durchlaufen, aber jetzt Nummer drei. Wenn Sie also zu Zeile Nummer drei zurückkehren und die Zahl 33 ist , ist das nicht weniger als drei, also ist das falsch. Jetzt wird die Schleife unterbrochen und wir werden die Ausführung nach Zeile Nummer fünf fortsetzen. Und das Konsolenprotokoll wird nicht ausgeführt, wenn num gleich drei ist. Geh in den For-Loop. Hier ist der Pseudocode für den ersten, Sie haben einen Initialisiererausdruck durch ein Semikolon beendet wird. Dann haben Sie den sogenannten Testausdruck, der erneut durch ein Semikolon und dann einen Iteratorausdruck beendet wird. Und natürlich haben Sie, ähnlich wie bei der While-Schleife, den Codeblock. Schauen wir uns anschließend den Initialisierer-Ausdruck an. Der Initialisierer-Ausdruck wird einmal ganz am Anfang ausgeführt , wenn der For-Loop online angezeigt wird, Nummer eins, der Initialisierer wird einmal ausgeführt, aber wenn Sie diese For-Schleife durchlaufen, wird er nicht lauf nochmal. Testausdruck gibt Ihnen einen booleschen Wert zurück. Das ist also sehr ähnlich zu dem, was Sie in die While-Schleife legen . Der Ausdruck sollte den Wert true oder false zurückgeben je nachdem, ob wir diese Schleife weiter ausführen sollen. Der Iteratorausdruck wird am Ende jeder Schleife ausgeführt. Normalerweise wird es verwendet, um einen Zähler so zu ändern, dass der Testausdruck beendet wird, was bedeutet, dass zu einem Zeitpunkt, den Sie über den Online-Pseudocode festgelegt haben, falsch zurückgegeben wird. Erstens, wenn Sie den For-Loop zum ersten Mal sehen, werden Sie die Initialisierer ausführen. Dann führen Sie den Testausdruck aus, um zu sagen, sollten wir diesen Codeblock ausführen? Und wenn ja, dann führe alles aus, was sich im Codeblock am Ende der Schleife befindet, führe den Iteratorausdruck gehe dann zurück zum Anfang der Schleife. Der Testausdruck wird dann verwendet, um zu sagen: Okay, führen wir das noch einmal aus? Wenn das stimmt, führen wir es erneut aus. Und dann am Ende der Schleife den Iteratorausdruck ausführen. Aber wenn es falsch ist, brechen wir die Schleife vollständig aus und fahren dann der Ausführung und dem Rest des Codes fort. Nun, das kann bei reinem Pseudocode etwas verwirrend sein. Gehen wir also auf ein Beispiel ein. Hier haben wir also drei Aussagen im For-Loop. Sei Zahl gleich Null. Das ist also die erste Anweisung, die Initializer-Anweisung. Dies wird von Anfang an ausgeführt. Der Testausdruck ähnelt dem, was wir in der While-Schleife hatten. Also Zahl weniger als drei. Wenn num kleiner als drei ist, dann führe alles aus, was sich in der Schleife befindet. Aber wenn nicht, dann brechen Sie aus der Schleife aus. Schließlich ist der Iteratorausdruck num plus plus, was bedeutet, dass wir nur num inkrementieren. dies zuerst noch einmal durchgehen, als Sie auf die Schleife gestoßen sind, ist num gleich Null, und Ihre Console.loggt also Null. Am Ende der Schleife wird die Zahl dann auf eins erhöht. Du gehst zurück zum Anfang der Schleife und eins ist immer noch weniger als drei. Yule Log One, du wirst es erhöhen. Jetzt ist Num zwei. Das sind natürlich weniger als drei, also protokollierst du es erneut und inkrementiert. Und jetzt ist Num drei. Wenn also num gleich drei ist, wird eine Zahl kleiner als drei als falsch ausgewertet, was bedeutet, dass Sie aus der Schleife ausbrechen. Mit der Form einer Schleife können Sie eine Bindung an ein bestimmtes Element innerhalb eines Iterables herstellen. Iterable ist üblicherweise ein Array. Und natürlich führe für jedes Element in diesem Iterable diesen Codeblock aus, aber du hast Zugriff auf das Element selbst. Das ist also sehr nützlich, um Arrays von Elementen zu durchgehen. Wenn Sie sich das Beispiel in Zeile Nummer eins ansehen, deklarieren Sie ein Array mit der Nummer 01.2. Dann kannst du sagen: Okay, für eine konstante Anzahl von Zahlen, und du wirst sehen, dass Num hier eine neue Variable oder Konstante ist . Und innerhalb des Codeblocks direkt danach haben Sie Zugriff auf num. Num ist jedes Element im Array, und wir gehen eins nach dem anderen durch jedes Element des Arrays. Für die erste Iteration ist Num also gleich Null. Also wirst du console.logs Null. Aber wenn Sie zum Anfang der Schleife zurückkehren, ist num jetzt eins, weil Sie das Array durchlaufen. Also loggst du eins und dann zwei. Und das ist das Ende des Rennens. Sie brechen also automatisch aus der For-Schleife aus. Wir gehen über die For-Each-Schleife. Es ist eine gute Alternative zu vier davon, die Sie auf dem Array selbst aufrufen können. Also nimmt jeder tatsächlich eine Iteratorfunktion als Parameter auf, und wir werden später mehr auf Funktionen eingehen. Aber wenn Sie sich das Beispiel ansehen, werden Sie wieder sehen, dass wir mit der For-of-Schleife eine Zahl haben, die einem Array von 01.2 entspricht. Aber Sie können jeden direkt darauf aufrufen und eine sogenannte Pfeilfunktion übergeben. Also mach dir darüber keine allzu großen Sorgen. Aber wenn Sie innerhalb dieser Funktion num in den Klammern haben , handelt es sich im Wesentlichen um die konstante Anzahl von Zahlen , die wir in der for-Schleife hatten. Und Sie werden sehen, dass wir auf dieses Zahlenelement innerhalb des Arrays zugreifen dieses Zahlenelement innerhalb und uns anmelden können. Also für jeden einfach iteriert und durchläuft jedes Element innerhalb des Arrays. Hallo Leute, lasst uns eine Demo der Iteration machen. In diesem Beispiel definieren wir also ein Interface Car. Jedes Auto hat eine Marke des Typs String sowie ein Modell des Typs String. Dann erstellen wir eine Reihe von Autos. Das erste Auto wurde also von Honda und das Modell von Civic hergestellt, und das zweite hat sich leisten und ein Modell von Focus. Versuchen wir, jede dieser Arten von Schleifen zu verwenden. Für die gesamte Schleife brauchen wir also etwas, um zu verfolgen, wo wir uns in der Schleife selbst befinden. Nehmen wir an, der Array-Index sei gleich Null. Dies wird verfolgen, wo wir uns im Array befinden. Während der Array-Index also kleiner ist als die Punktlänge des Autos , werden wir zunächst das Autoobjekt selbst auf der Konsole mit Punkt protokollieren. Und Sie werden sich daran erinnern, dass Sie mit indexiertem Zugriff auf dieses bestimmte Objekt zugreifen können. Also können wir unseren Index verwenden. Und natürlich können Sie sagen, dass unser Index inkrementiert wird. Und wir werden diese Schleife durchlaufen. Das bedeutet also, dass unser Index an erster Stelle Null ist. Unser Index ist Null, also weniger als Punktlänge eines Autos, also zwei. Also werden wir den Nullindex von Autos protokollieren, was das erste Element ist. Als Nächstes erhöhen wir unseren Index, der eins ist, genau hier. Und jetzt ist unser Index einer. Wenn unser Index eins ist, ist er immer noch weniger als die Tarsallänge, die, wie Sie sich erinnern werden, zwei beträgt. Also protokollieren wir jetzt das zweite Element von Autos. Jetzt erhöhen wir unseren Index und unser Index ist jetzt zwei, aber zwei ist nicht weniger als zwei. Also brechen wir aus dem Kreislauf aus. Lass uns versuchen, das auszuführen. Das erwarten wir. Also protokollieren wir zuerst das erste Element des Arrays und dann das zweite Element des Arrays. Jetzt können Sie dies tatsächlich mit einem For-Loop verkürzen. Wir können also für, wir können sagen für, lass unseren Index gleich Null sein. Das wird also von Anfang an ausgeführt. Unser Index ist also an erster Stelle Null. Unser Index ist leider kleiner als die Punktlänge von Autos. Das ist also der Testausdruck. Und dann das Inkrement, unser Iteratorausdruck, ist unser Index plus, plus. Und wie immer können wir das so protokollieren, wie wir es hier haben. Und lass uns versuchen, das auszuführen. Schon wieder. Wir haben genau das Gleiche. Jetzt kann dies weiter vereinfacht werden, indem man die Form von Loop verwendet, bei dem es sich um vier Konzeptautos von Autos handelt. Das heißt jetzt nur, durchgehen Sie jedes Autoelement innerhalb des Cars-Arrays. Und wir können console.log Auto. Und du wirst sehen, dass es nach unten scrollt. Wir haben genau das Gleiche. Lassen Sie uns das tatsächlich klären. Um es jetzt noch klarer zu machen. Und vielleicht ist dies die Alternative, die Sie bevorzugen. Sie können tatsächlich Autos fahren und dann den Foreach anrufen und ihm eine sogenannte Funktion übergeben, ein Auto, und dieses Auto sofort protokollieren. Und wieder haben wir genau das Gleiche. Damit ist unsere Demo abgeschlossen und wir sehen uns wieder auf den Folien. In Ordnung, Übungen. Versuchen Sie, ein Skript zu schreiben , das die Zahlen 50-60, aber auch 60 protokolliert , und verwenden Sie dabei die vier verschiedenen Arten von Schleifen. Zweitens definieren Sie ein Array von Zeichenketten mit Elementen, Hello, World, Array und sperren Sie jedes Element mit jedem der vier Loop-Typen. Ein kleiner Hinweis hier, die Länge des Arrays könnte für while und für Loops sehr nützlich sein, wenn Sie dies tun. Okay Leute, ich beantworte gerne alle Fragen und wir sehen uns in der nächsten Lektion. 13. Switch-Statements: Hallo Leute, in dieser Lektion gehen wir auf die Switch-Anweisung ein, die letzte Lektion im Bereich Flow Control. einer Switch-Anweisung können Sie mehrere Fälle auswerten und etwas ausführen, wenn ein Fall übereinstimmt. Standardmäßig werden alle Fälle von oben nach unten überprüft, und Sie würden eine Pause verwenden, um die gesamte Anweisung zu beenden , wenn ein Fall zutrifft. Wir werden den Pseudocode sowie ein Beispiel durchgehen , um dies klarer zu machen. Stellen Sie sich jedoch eine Switch-Anweisung als eine gute Alternative vor, um viele Bedingungen zu erfüllen. Dies ist also eine Alternative zur Verwendung vieler If-Else-Blöcke. Das Gleiche kann mit vielen, wenn auch sonst Blöcken gemacht werden. Schauen wir uns also den Pseudocode an. Zuerst haben Sie die Switch-Anweisung selbst in Zeile Nummer eins. In die Klammer setzen Sie eine Variable, die Sie vergleichen möchten. Und dann hast du den Codeblock in den geschweiften Klammern. Danach sehen Sie, dass jedes Element in der Switch-Anweisung von Fall zu Fall gestartet wird. After Case ist im Wesentlichen das, was Sie einer Variablen vergleichen möchten, mit der Sie vergleichen möchten. Wenn die zu vergleichende Variable genau gleich dem ersten Fall r1 ist , tun sie etwas, und Sie werden dort die Verwendung von break sehen. Wenn wir also Pause sagen, sagen wir, beenden Sie die Switch-Anweisung vollständig. Wenn Sie keine Pause machen müssen, werden Sie tatsächlich Schritt für Schritt alle Falldarstellungen durchgehen . Und wenn etwas anderes darunter maskiert wird , wird dieser Codeblock ebenfalls ausgeführt. Schauen wir uns also Zeile Nummer sieben an. Schauen wir uns nun den zweiten Fall an. Wenn die zu vergleichende Variable gleich dem zweiten Fall ist, führen wir do etwas anderes aus. Beachten Sie jedoch, dass es keine Break-Anweisung gibt, und dies ist ein seltsamer Teil von TypeScript. Und wenn Sie bei einer Aussage übereinstimmen und es keine Unterbrechung gibt, werden Sie alle unten aufgeführten Fälle weiterhin so bearbeiten, als ob sie übereinstimmen würden. Wenn also die zu vergleichende Variable gleich dem zweiten Fall ist, wird in diesem zweiten Fall etwas anderes ausgeführt , die Case-Anweisung. Aber der dritte Fall wird auch übereinstimmen, unabhängig davon , ob die zu vergleichende Variable dem dritten Fall entspricht. Also mach etwas anderes, das tatsächlich zweimal aufgerufen wird. Jetzt haben Sie natürlich die Standardklausel und diese wird ausgeführt, wenn nichts übereinstimmt. Schauen wir uns ein Beispiel an. Dies ist direkt aus den Mozilla-Dokumenten. Lassen Sie uns also zuerst ein konstantes Tier deklarieren , das einer Giraffe entspricht. Jetzt schalten wir dieses Tier ein. Also wenn Tiere kuhen, was nicht läuft nichts. Wenn das Tier eine Giraffe ist, was Console.log ist, ist es eine Giraffe. Beachten Sie jedoch, dass es dort keine Break-Statement gibt. Sie werden also weiterhin alle unten aufgeführten Fallsegmente so ausführen , als ob sie übereinstimmen würden. Der Fall für den Hund wird funktionieren, aber da ist nichts. Also tun wir nichts. Aber die Argumente für PE werden tatsächlich auch geführt. Also wirst du dich einloggen. Es ist eine Giraffe und unterbezahlt. Du liebst auch console.log. Dieses Tier ist nicht ausgestorben. Und dann hast du endlich das Break-Statement. Also alles, was hinter Dinosaurier her ist, wird nicht ausgeführt. Sagen wir Tiere, etwas anderes das keinem der Fälle entsprach, dann protokollieren Sie standardmäßig, dass dieses Tier ausgestorben ist. Ordnung, also eine Übung für diese Lektion: Schreiben Sie eine Switch-Anweisung, die mit einer Nummer namens Meine Nummer funktioniert, und gehen Sie auf die folgenden Fälle ein. Wenn meine Nummer einem Protokoll entspricht, ist es eins. Wenn es fünf ist, dann sind es fünf. Und wenn meine Nummer weder eins noch fünf ist, log nicht 145. Lassen Sie mich wie immer wissen, wenn Sie auf Probleme stoßen , und wir sehen uns in der nächsten Lektion. 14. Funktionen: Hallo Leute, ich hoffe euch geht es gut. Und das ist weniger, als wir Funktionen durchgehen. Dies ist wohl eines der wichtigsten Dinge in JavaScript oder der Programmierung im Allgemeinen. Komplexer Code baut wirklich auf Kompositionsfunktionen auf. Eine Funktion put nimmt einfach oder mehrere Eingaben auf, die als Parameter oder Variablen bezeichnet werden, und gibt einen optionalen Rückgabetyp zurück. Sie können sich also eine Funktion wie eine Blackbox vorstellen. Wenn Sie eine Eingabe eingeben, passiert etwas in der Blackbox. Dafür ist die Funktion also verantwortlich. Und dann erhalten Sie eine bestimmte Anzahl von Ausgängen. Und ich sage hier optionaler Rückgabetyp, weil Sie eigentlich nichts von einer Funktion zurückgeben müssen. Oft geben Funktionen eine Art Rückgabetyp zurück, je nachdem, wofür die Funktion bestimmt ist. Eine Funktion sollte eine grundlegende Arbeitseinheit sein. Es sollte eine Sache tun und entsprechend benannt werden. Also würden Sie Ihrer Funktion z. B. get, calculate oder parse voranstellen, je nachdem , wofür die Funktion gedacht ist. Im Allgemeinen ist es eine gute Idee, eine Funktion für eine Betriebseinheit zu haben . Wenn Sie also zwei Dinge innerhalb der Funktion tun, ist das ein gutes Zeichen dafür , dass Sie diese Funktion in zwei separate Funktionen aufteilen sollten . Ordnung, also ein bisschen über Funktionsdeklarationen in TypeScript. Fangen wir mit Zeile Nummer eins an. Wir deklarieren eine Funktion mit dem Schlüsselwort function. Ihre Eingaben oder Parameter sind durch Kommas getrennt. Also hier haben wir die erste Eingabe und wir haben einen Doppelpunkt mit der Art der ersten Eingabe. Dann haben wir die zweite Eingabe, getrennt durch ein Komma. Die zweite Eingabe ist vom Typ, der zweite Eingabetyp bezeichnet den Rückgabetyp der Funktion, Sie beginnen mit dem Doppelpunkt nach der letzten Klammer der Funktionsparameter und geben den geben Sie den Typ direkt danach zurück. Dann haben Sie natürlich die geschweiften Klammern, um den Codeblock für die Funktion zu bezeichnen. Sie können innerhalb der Funktion tun, was Sie wollen. Und natürlich haben Sie sowohl Zugriff auf die erste als auch auf die zweite Eingabe. Und ganz am Ende möchten Sie eine Art Variable zurückgeben, möchten Sie eine Art Variable zurückgeben die dem Rückgabetyp entspricht. Ich habe gesagt, dass der Rückgabetyp optional ist. Also online Nummer acht, wenn Sie das endende Semikolon mit einem Typ weglassen, bedeutet das, dass TypeScript tatsächlich den Rückgabetyp meines Funktionsnamens ableitet. Unabhängig von der Art der Variablen vom Typ Rückgabetyp wird TypeScript meinen Funktionsnamen annotieren um diesen Typ zurückzugeben. Es gibt auch eine alternative Syntax für die Deklaration einer Funktion. Und das heißt, einer Variablen tatsächlich eine Funktion zuzuweisen. Zeile Nummer 14 sehen Sie, dass wir const my arrow function sagen. Dies ist der Deklaration einer Variablen vom Typ Nummer oder vom Typ Zeichenfolge sehr ähnlich . Sie haben dann die Klammern, um Ihre Eingaben zu deklarieren. Sie haben also eine Eingabe namens Meine Eingabe meines Eingabetyps, und dann bezeichnen Sie mit einem Doppelpunkt danach den Rückgabetyp. Und dann haben Sie eine Art Pfeil mit dem Gleichheitszeichen sowie dem Operator größer als mit einer Funktion in Klammern direkt danach. Wie der Variablenname schon sagt, wird diese Deklaration als Pfeilfunktion bezeichnet. Sie haben also eine normale Funktion mit dem Schlüsselwort function deklariert. Und Sie haben eine Pfeilfunktion mit der Pfeilsyntax deklariert und weisen sie einer Konstanten oder einer Variablen zu. Was kann man also in eine Funktion einfügen? Das ist eigentlich alles, was du willst. Was auch immer gültiger Code in TypeScript ist, können Sie in eine Funktion einfügen. Alles, was die Funktion tut, ist, irgendein Stück Logik oder ein Stück Code in Blöcke abzustrahieren , die deinem gesamten Code wiederverwendet werden können. Sie können Ihre Funktion also mehrmals im gesamten Code aufrufen . Und das bedeutet, dass Sie nicht identische Codeblöcke kopieren und in Ihren Code einfügen müssen. Also ein bisschen bei guten Funktionsnamen, im Allgemeinen solltest du ein Verb voranstellen , je nachdem, was die Funktion tut. Ein Beispiel ist also Zahlen hinzufügen. Also hier verwenden wir die Pfeilsyntax. Wir sagen, dass ungerade Zahlen eine Funktion sind, die als erste Funktion vom Typ Zahl und zweite Zahl eine Zahl zurückgibt. Und Sie werden sehen, dass wir innerhalb des Funktionstextes nur zuerst plus Sekunde hinzufügen. Versuchen wir nun, eine Schnittstelle in Zeile Nummer fünf zu deklarieren . Es ist eine ziemlich einfache Oberfläche mit den Feldern Name und Alter. Dann verwenden wir die Syntax der Funktionsdeklaration. Wir haben es GetAge genannt, weil es das Alter annimmt und es zurückgibt. Sie werden sehen, dass der Parameter eine Person vom Typ Person akzeptiert und eine Zahl zurückgibt. nur die Funktionsdeklaration liest, kann er ziemlich gut ableiten, dass der Rückgabetyp der Zahl das Alter der Person ist. Und natürlich haben wir innerhalb des Funktionskörpers Person Punkt h zurückgegeben, was das Alter ist, als zugewiesene Person signiert. Objekt. Typescript ermöglicht auch Nullwerte - und Standardparameter. Im ersten Beispiel haben wir also myfunction. Wir haben dann ein Argument oder einen Parameter namens knowable argument. Schau dir das Fragezeichen mit dem Doppelpunkt an. Dies bedeutet, dass das Argument, das auf Null gesetzt werden kann, optional ist. Beachten Sie auch, dass wir innerhalb dieser Funktion nichts zurückgeben . Type script wird dann daraus schließen, dass der Rückgabetyp meiner Funktion ungültig ist. Also wann immer du eine Leere siehst. Es ist wirklich nur ein anderer Name für nichts im Codeblock in meiner Funktion, der Typ des bekannbaren Arguments, weil wir angegeben haben, dass es nullenbar oder optional, numerisch oder undefiniert ist. bekannte Argument console.log gibt also undefined aus, wenn Sie meine Funktion aufrufen , ohne irgendwelche Argumente zu übergeben. Oder wenn Sie z. B. die Nummer zwei eingeben, dann wird zwei protokolliert. Nun zu den Standardparametern. In dem Beispiel, das wir hier haben, ist standardmäßig der Typ Nummer und was der Syntax entspricht. Wir sagen, wenn kein Argument für unseren Wachstumsausfall angegeben wird , sollten diese Variable standardmäßig auf zwei setzen. Wenn wir also eine andere Funktion mit Argument vier aufrufen, dann ist das Standardargument vier. Und so melden Sie sich natürlich innerhalb des Funktionstextes an. Wenn Sie jedoch eine andere Funktion mit nichts aufrufen, ist so bewaffnet mit der Standardeinstellung nicht angegeben. Standardmäßig sind es zwei. Sie werden also sehen, dass auch das protokolliert wird. Hallo Leute, in diesem Beispiel schreiben wir eine Funktion, die gerade Zahlen summiert , die alle geraden Zahlen innerhalb eines Zahlenfeldes summiert und zur Sonne zurückkehrt. Lassen Sie mich also zuerst die Funktion deklarieren. Wir werden es ein paar gerade Zahlen nennen. Es wird eine Reihe von Nummern aufnehmen , die ich anrufen werde. Und es wird eine Zahl zurückgeben. Das ist also der Funktionsname, einige gerade Zahlen. Es akzeptiert einen Parameter, den Typ des Zahlenfeldes, und der Parameter heißt Zahlen. Dann geben wir eine Zahl zurück und Sie werden sehen , dass wir hier einen TypeScript-Fehler haben. Dies bedeutet im Wesentlichen, dass wir keine Zahl zurückgeben, obwohl wir TypeScript mitgeteilt haben , dass die Funktion einige gerade Zahlen eine Zahl zurückgeben sollte. Wenn wir z. B. nur Null zurückgeben, verschwindet dieser Fehler, weil wir hier in diesem Funktionstext eine Zahl zurückgeben . Wir können schreiben, was wir wollen. Die Rolle der Funktion besteht jedoch darin, alle geraden Zahlen innerhalb des Zahlenarrays zu summieren . Lassen Sie uns auch einen Schnelltest dafür schreiben. Lassen Sie uns ein Array 12345 deklarieren. Und wir werden einfach das Ergebnis einiger gerader Zahlen protokollieren , wenn wir dieses Array übergeben. Lassen Sie uns das also schnell ausführen und Sie werden sehen, dass wir kein Protokoll erhalten, weil wir hier natürlich Null zurückgeben. Versuchen wir nun, die Funktion selbst zu implementieren. Wir werden die Summe anhand der Variablen Valley verfolgen . Und hier müssen wir alle geraden Zahlen in Zahlen summieren. Um dies zu erreichen, verwende ich für jedes Feld Zahlen. Hier übergeben wir eine Callback-Funktion. Und ihre Callback-Funktion ist eine Funktion , die mit der Pfeilsyntax deklariert wurde. Für jeden braucht es einen Callback , der einen Parameter num benötigt , der für jedes Element innerhalb des Arrays steht. Num wird es sein. Im Fall von Zahlen wird es 1.234,5 sein. Während wir das Zahlenfeld durchgehen, interessieren wir uns alle geraden Zahlen innerhalb des Arrays. Aber wie machen wir das? Erinnern Sie sich an den Modulo-Operator. Ich werde also sagen, ob Num Modulo zwei genau gleich Null ist und Modulo der Rest nach der Division durch diese Zahl ist . Wenn es eine gerade Zahl ist und Sie durch zwei dividieren, ist der Rest immer Null. Wir wissen also, dass NUM sogar hier ist. Wenn wir wissen, dass diese Zahl gerade ist, möchten wir den Wert des Werts erhöhen. Schließlich, ganz am Ende, geben wir einen Wert zurück. Lass uns versuchen, das auszuführen. Wir werden sehen, dass das Ergebnis sechs ist. Und wenn wir hier nur die geraden Zahlen nehmen, die 2,4 sind, sollte die Summe natürlich hier nur die geraden Zahlen nehmen, die 2,4 sind, sechs sein. Versuchen wir, dieses Array zu ändern. Also sagen wir, sagen wir 12. Jetzt ist das sogar so, wir erwarten, dass sechs zu 12 addiert werden, was 18 ist, und genau das bekommen wir. Versuchen wir nun, eine ungerade Zahl hinzuzufügen, 101. Das ist seltsam und sollte daher nicht im Endwert enthalten sein . Wir führen das erneut durch, wir sehen, dass wir wieder 18 Monate haben, was bedeutet, dass wir einigermaßen sicher sein können , dass unsere Funktion, einige gerade Zahlen, funktioniert hat. Okay Leute, das war's für dieses Beispiel und ich sehe euch wieder auf den Folien. Okay, also zu einigen Übungen, schreibe zuerst eine Funktion Log Streams, die Zeichenkettenargumente wie das Argument berücksichtigt und nichts zurückgibt. Schreiben Sie eine Funktion für Exponentiat Nummer zwei, die zwei Zahlen a und b akzeptiert und eine Zahl, ein doppeltes Sternchen b, zurückgibt . Und dies ist die Notation , um a in TypeScript mit b zu potenzieren. Okay, Nummer drei, schauen Sie sich die Filterfunktion von Array an, und Sie werden sehen, dass die Filterfunktion tatsächlich eine andere Funktion als Parameter verwendet. Dieser Parameter wird als Filterfunktion bezeichnet . Die Funktion, die Sie an den Filter übergeben, muss also wahr oder falsch zurückgeben , was angibt, ob das aktuelle Element in das endgültige Array aufgenommen werden soll. Tauche also ein bisschen in die Filterfunktion der Hunde ein und du wirst es anhand der Beispiele in der Dokumentation sehen können , die ich verlinkt habe. nun mit diesem Hintergrund Schreiben Sie nun mit diesem Hintergrund ein Skript, das das Array 1.234.5 erstellt. Und dann erstellen Sie ein neues Array mit dieser Filterfunktion mit nur den geraden Elementen des ursprünglichen Arrays. Ein kleiner Hinweis hier, der Modulo-Operator, wir zuvor gesehen haben, kann sehr nützlich sein. Lasst mich wissen, wenn ihr Fragen habt und ich sehe euch in der nächsten Lektion. 15. ES5 Kurse: Hallo Leute, ich hoffe, dass es euch gut geht. In dieser letzten Lektion werden wir uns mit den Klassen befassen. Wir werden nicht viel Zeit mit Klassen verbringen weil sie wirklich nur das wiederverwenden, was wir bereits wissen. Ein Großteil der Syntax ist in der gesamten Dokumentation zu sehen. Außerdem werden Klassen in TypeScript normalerweise nicht sehr oft verwendet. Es werden sowohl Funktionen als auch Objekte häufiger angezeigt. Und alles, was die Klasse wirklich ist, sind aufgepeppte Objekte. Es kapselt bestimmte Funktionen und Eigenschaften und ahmt eine objektorientierte Syntax nach. Obwohl JavaScript oder TypeScript nicht wirklich objektorientierte Programmierung sind, wird es verwendet, um verwandte Funktionen zu gruppieren. Anstatt separate Funktionen zu haben gibt es separate Eigenschaften innerhalb eines Objekts. Auch dies wird in der Produktion nicht wirklich häufig verwendet , je nachdem, wo Sie sich befinden. Basisobjekte scheinen beliebter zu sein, ebenso wie Funktionen, die dieses Objekt aufnehmen und einige Operationen daran ausführen. Schauen wir uns die Syntax einer Klasse anhand eines Beispiels kurz an. Online Nummer eins: Wir verwenden das Schlüsselwort class, um eine Klasse mit dem Namen my class name zu deklarieren . Dann haben Sie natürlich einen Konstruktor. Indem Sie also den Konstruktor aufrufen, erstellen Sie eine Instanz meines Klassennamens. Sie werden sehen, dass der Konstruktor einer Funktion sehr ähnlich sieht und es auch wirklich ist. Es nimmt den ersten Parameter des Typs Nummer und den zweiten Parameter des Typs string auf. Wir verwenden dann das Schlüsselwort, this. Wenn Sie dies verwenden, verweisen Sie auf eine Eigenschaft in einer Instanz meines Klassennamens. Wenn Sie also von einem objektorientierten Spielplatz kommen, sollte dies unkompliziert sein. Dann sehen Sie das in Zeile Nummer sieben sowie in Zeile Nummer 13. Sie können dieselbe Syntax verwenden , um Funktionen auf der Instanz selbst zu deklarieren. Online Nummer sieben, wir deklarieren eine Klassenfunktion. Und dann können Sie damit auf andere Mitglieder derselben Instanz zugreifen . also diese Funktion für eine andere Klasse verwenden, rufen wir eine andere Klassenfunktion auf und rufen sie innerhalb der Klassenfunktion auf. Dann ist da noch das statische Schlüsselwort. Auch hier gilt: Wenn Sie aus objektorientierter Programmierung kommen , sollte das ganz einfach sein. Sie verwenden also das statische Schlüsselwort und können sowohl Eigenschaften als auch Funktionen für meinen Klassennamen deklarieren . Und diese sind natürlich an die Klasse gebunden und nicht an eine Instanz der Klasse. In Zeile Nummer 17 deklarieren wir eine statische Zeichenketteneigenschaft von HelloWorld. Und online Nummer 19, wir erstellen gerade eine statische Funktion. Und wie bei den meisten objektorientierten Sprachen können Sie eine Instanz einer Klasse erstellen, indem neue Online-Nummer 26 verwenden. Wir sagen, die Variable meine Klasseninstanz, und Sie erstellen eine Instanz meines Klassennamens, indem Sie meinen Klassennamen kannten und die Konstruktorparameter übergeben. Dann auf meiner Klasseninstanz. Sie können Dinge wie Klassenfunktion oder andere Klassenfunktionen aufrufen , weil sie zu einer Instanz der Klasse gehören. Das ist es also im Wesentlichen mit Klassen. Auch dies ist ein ziemlich einfacher und schneller Überblick über die Klassensyntax, nur damit Sie wissen, was das bedeutet. Die Dokumentation enthält definitiv noch viel mehr. Allerdings, weil sie nicht sehr oft verwendet werden und die Leute eher Objekte als reine Funktionen bevorzugen. Wir verbringen nicht viel Zeit damit, den Unterricht zu absolvieren. Hier sind ein paar Übungen. Erstellen Sie zunächst ein Klassen-To-Do-Listenelement. Diese Nummer eins hat einen Namen als Zeichenketteneigenschaft, die durch den Konstruktor erstellt wird . Außerdem ist das Hinzufügen einer Eigenschaft abgeschlossen. Dies ist falsch, wenn Sie eine Instanz eines To-Do-Listenelements erstellen. Sie können diesen Punkt ist abgeschlossen also innerhalb des Konstruktors auf false setzen. Fügen Sie der Instanz auch eine Funktion mit dem Namen Mark done hinzu. Innerhalb von Mark Done ist die Änderung an der Instanz abgeschlossen Sie müssen also diesen Punkt ist abgeschlossen auf true setzen dann eine statische Funktion namens log properties erstellen. Denken Sie also daran, dass Sie hier das statische Schlüsselwort verwenden müssen . Hat ein To-Do-Listenelement als Parameter genommen und die Eigenschaften mit diesem Vorlagennamen protokolliert. Fügen Sie dann den Namen hinzu und dann ist es abgeschlossen, und fügen Sie dann hinzu, ob es abgeschlossen ist. Nummer zwei. Sie nun mit Ihrem neuen Klasseneintrag eine Instanz der Elemente, Erstellen Sie nun mit Ihrem neuen Klasseneintrag eine Instanz der Elemente, die Sie mit den Schlüsselwörtern CONST oder let verwenden sollten , und erstellen Sie eine Instanz namens todo item und geben Sie ihr den Namen Geschirr spülen. Versuchen Sie dann, dieses Element mithilfe der statischen Eigenschaft oder der statischen Funktion To-Do-List Item dot log properties zu protokollieren log properties zu protokollieren. Prüfen Sie, ob es Ihren Erwartungen entspricht. Versuchen Sie dann, Mark Done auf der Instanz aufzurufen. Sie rufen das also auf dem Todo-Element auf und nicht auf dem Klassen-To-Do-Listenelement. Verwenden Sie dann log properties, die statische Funktion, um die Instanz zu protokollieren. Wieder, nachdem Mark fertig ist, ist gelaufen. Das war's für diesen einen, Leute. Und das ist das Ende des Kurses. Es wird ein weiteres Video geben das Abschlussprojekt behandelt wird. Also werde ich euch dort sehen. 16. Course: Hallo Leute. In diesem Video gehen wir auf Abschlussprojekt ein. Das Projekt besteht darin, eine Aufgabenliste in TypeScript zu erstellen. Definieren wir es also zunächst so, dass ein Schnittstellen-To-Do-Element erstellt wird, um die Struktur einer Aufgabe zu spezifizieren. Und ich habe hier einige Details für die verschiedenen Felder innerhalb des To-Do-Elements angegeben . Im nächsten Abschnitt werden Sie aufgefordert, einige Hilfsfunktionen hinzuzufügen. Erstellen Sie also eine Todo-ID, die die richtige ID des To-Do-Listenelements generiert, sowie create to do, die diese und unnötige Parameter verwendet und Ihnen einen Aufgabeneintrag gibt. Dies wird also alternativ als Factorfunktion oder Konstruktorfunktion bezeichnet . Als Nächstes erstellen wir eine Art von Aufgabenlisten, bei denen es sich lediglich um eine Reihe von To-Do-Elementen handelt. Wir werden einige Funktionen definieren , die auf dieser To-Do-Liste stehen, um sowohl erledigt als auch erledigt zu werden. Nach Abschluss dieser Funktionen durchlaufen wir ein Szenario, in dem Sie Ihre Funktionen testen können. Diese sind also hier am Ende des Dokuments aufgeführt. Ganz zum Schluss bitte ich Sie, zu versuchen, eine neue Liste zu erstellen, die nicht alle erledigten Aufgaben in Ihren kleinen Tests hier während der Übung enthält . Versuchen Sie, sich nach jedem Vorgang von der Liste abzumelden, nur um zu bestätigen, dass das, was Ihr Code Ihrer Meinung nach tut, tatsächlich das ist, was er tut. Probiere diese Übung aus. Lass mich wissen, was du dir einfallen lässt und ich beantworte gerne Fragen. Im nächsten Video gehen wir auf eine Beispiellösung für dieses Abschlussprojekt ein. Wir sehen uns dort. 17. Course: Hallo Leute, in diesem letzten Video werden wir eine Beispiellösung für das Projekt besprechen. Der Kürze halber lasse ich also alle Konsolenprotokolle sowie den Testcode weg. Und wir gehen auf die Kernfunktionen ein, die Sie im Rahmen des Abschlussprojekts implementieren müssen. Also erstellen wir zuerst eine Schnittstelle namens todo item. Es hat diese Felder mit dem ID-Namen der in einem optionalen Beschreibungsfeld erstellt wurde, sowie im Feld ist ausgefüllt. Wir haben ein paar Hilfsfunktionen gelesen. Die erste wird erstellt, do id, und wir verwenden hier die Zeichenketteninterpolation indem wir sowohl den Namen als auch den erstellten eingeben. Bei. Als Nächstes erstellen wir eine Factory - oder Konstruktorfunktion namens create. Dazu braucht es nur einen Namen und eine Beschreibung, weil wir den bisherigen Punkt jetzt standardmäßig erstellt haben, was Ihnen im Wesentlichen die Unix-Millisekunden seit dem 1. Januar 1970 gibt. Dies ist also eine Zahl, die die Anzahl der Millisekunden angibt, die seit dieser besonderen Zeit vergangen sind. Wir können dann unsere andere Util-Funktion create todo id aufrufen. Um die ID zu erstellen, werden wir den Namen und die Beschreibung direkt an das Objekt übergeben , ebenso wie erstellt, weil wir es bereits erstellt haben diese Konstante hier. Natürlich abgeschlossen, wird standardmäßig auf false gesetzt, wenn Sie eine Aufgabe zum ersten Mal erstellen. Als Nächstes definieren wir eine Art Aufgabenliste, die einfach nur aus einer Reihe von To-Do-Elementen besteht. Dann haben wir unsere drei Funktionen , die auf einer To-Do-Liste ausgeführt werden. Die erste ist also die Einstellung, die eine neue Liste erstellen wird. Und was wir tun, ist den Spread-Operator zu verwenden. Dadurch werden im Wesentlichen alle Elemente der vorhandenen To-Do-Liste platziert, das neue Array, das wir deklarieren. Und dann fügen wir das neue Todo oben hinzu. Als nächstes verwenden wir für removed die Filterfunktion und übergeben hier eine Callback-Funktion oder alternativ eine Pfeilfunktion. Weil der Filter alle Elemente einschließt , für die diese Funktion den Wert true zurückgibt. Wir möchten alle Todos mit der ID einbeziehen , die nicht mit dieser ID übereinstimmt. Der Filter entfernt also nur dann ein Element aus der Aufgabenliste, wenn die Aufgaben-ID mit der ID übereinstimmt, die wir entfernen möchten. Filter gibt uns tatsächlich ein neues Array. Die bestehende To-Do-Liste wird dadurch nicht geändert. Wir sagen also, dass eine neue Liste zurückgegeben wird, sowohl durch die TypeScript-Typ-Annotation als auch durch den Kommentar. Zu guter Letzt haben wir alles zu erledigen. Wir verwenden die Funktion find für das Array. Und das Bußgeld nimmt eine weitere Rückruffunktion auf. Und dieser Rückruf sollte true zurückgeben , wenn wir danach suchen. Wir suchen also nach einer ID, die genau der ID entspricht, die wir finden möchten. Wenn wir also diese Aufgabe gefunden haben, denken Sie daran, wenn nichts gefunden wird, gibt fine undefined zurück, was falsch ist. Wenn es also nicht falsch ist, also nicht undefiniert ist, dann haben wir beschlossen, zu tun und dann können wir auf true umstellen. Abschließend bitte ich Sie, am Ende der Übung, eine neue Liste zu erstellen, indem Sie alle abgeschlossenen Aufgaben von der Aufgabenliste streichen. Ich habe dafür tatsächlich eine Funktion namens remove completed geschrieben , um es wieder zu tun, wir verwenden hier eine Filterfunktion. Denken Sie daran, dass die Funktion, die innerhalb des Parameters an den Filter übergeben wird, den Wert true zurückgeben sollte, wenn wir das Element in das resultierende Array aufnehmen möchten . Und true gibt false zurück, wenn wir diesen Artikel ausschließen möchten. Deshalb möchten wir alle Artikel ausschließen , die bereits abgeschlossen sind. Wenn es bereits abgeschlossen ist, möchten wir false zurückgeben und falsch bedeutet, dass wir es ausschließen möchten. Ob wir es also zu erledigen einbeziehen wollen, ist im Wesentlichen das Gegenteil davon ob die Aufgabe erledigt ist. Wenn es also nicht abgeschlossen ist, wird es als falsch abgeschlossen abgeschlossen. Wir kehren es mit diesem Ausrufezeichen um. Falsch, invertiert ist wahr, und das bedeutet, dass wir es einbeziehen wollen. Wenn x2 abgeschlossen ist, ist die Umkehrung von wahr falsch. Daher gibt diese Filterfunktion den Wert false aus, was bedeutet, dass der Artikel nicht in die resultierende Aufgabenliste aufgenommen wird . Und das ist so ziemlich alles. Sie können im Wesentlichen alle diese Funktionen in Ihrem Testcode verwenden. Und dann versuchen Sie, das Ergebnis jeder Operation zu protokollieren. Und Sie sollten sehen können, dass der Code so läuft, wie wir es erwarten. Vielen Dank, Leute, dass Sie den Kurs besucht haben. Ich hoffe, dass Sie viel über JavaScript, TypeScript und Programmieren im Allgemeinen gelernt haben. Ich hoffe, wir sehen uns in einem zukünftigen Kurs. Passt auf euch auf.