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.