TypeScript-Grundsyntax
Ein TypeScript-Programm besteht aus den folgenden Teilen:
- Module
- Funktionen
- Variablen
- Anweisungen und Ausdrücke
- Kommentare
Erstes TypeScript-Programm
Wir können das folgende TypeScript-Programm verwenden, um "Hello World" auszugeben:
Der obige Code wird zuerst mit demtsc-Befehl kompiliert:
tsc Example.ts
Man erhält den folgenden js-Code:
Code der Datei Example.js:
Schließlich verwenden wir den Befehl node, um diesen js-Code auszuführen.
$ node Example.js Hello World
Der gesamte Prozess ist in der folgenden Abbildung dargestellt:

Wir können mehrere ts-Dateien gleichzeitig kompilieren:
tsc file1.ts file2.ts file3.ts
Die häufig verwendeten Kompilierungsparameter von tsc sind in der folgenden Tabelle aufgeführt:
| Nein. | Beschreibung der Kompilierungsparameter |
|---|---|
| 1. | --help Hilfeinformationen anzeigen |
| 2. | --module Erweiterungsmodule laden |
| 3. | --target ECMA-Version festlegen |
| 4. | --declaration Zusätzlich eine Datei mit der Erweiterung .d.ts generieren. tsc ts-hw.ts --declaration Der obige Befehl erzeugt zwei Dateien: ts-hw.d.ts und ts-hw.js. |
| 5. | --removeComments Kommentare aus Dateien entfernen |
| 6. | --out Mehrere Dateien kompilieren und in einer einzigen Ausgabedatei zusammenführen |
| 7. | --sourcemap Eine Sourcemap-Datei (.map) generieren. Eine Sourcemap ist eine Informationsdatei, die die Zuordnung entsprechender Positionen zwischen Quellcode und kompiliertem Code speichert. |
| 8. | --module noImplicitAny Einen Fehler melden, wenn bei Ausdrücken und Deklarationen ein impliziter any-Typ vorhanden ist. |
| 9. | --watch Den Compiler im Watch-Modus ausführen. Er überwacht die Ausgabedateien und kompiliert sie erneut, wenn sie sich ändern. |
Reservierte Schlüsselwörter in TypeScript
Die reservierten Schlüsselwörter von TypeScript sind in der folgenden Tabelle aufgeführt:
| Schlüsselwort | Beschreibung |
|---|---|
abstract | Wird verwendet, um abstrakte Klassen oder abstrakte Methoden zu definieren. |
any | Repräsentiert den Typ any und deaktiviert die Typprüfung. |
as | Typzusicherung, wird verwendet, um einen Typ in einen anderen umzuwandeln. |
await | Wird in async-Funktionen verwendet, um die Codeausführung anzuhalten, bis das Promise aufgelöst wird. |
boolean | Repräsentiert den Typ boolean. |
break | Verlässt eine Schleife oder eine switch-Anweisung. |
case | Wird für Verzweigungen in einer switch-Anweisung verwendet. |
catch | Wird verwendet, um Ausnahmen abzufangen. |
class | Wird verwendet, um eine Klasse zu definieren. |
const | Definiert eine konstante Variable. |
continue | Überspringt die aktuelle Schleifeniteration und fährt mit der nächsten fort. |
debugger | Startet den Debugger und pausiert die Codeausführung. |
declare | Deklariert eine Variable oder ein Modul, wird normalerweise in Typdeklarationsdateien verwendet. |
default | Definiert den default-Zweig einer switch-Anweisung. |
delete | Löscht die Eigenschaft eines Objekts oder ein Element eines Arrays. |
do | Verwendet indo...whileSchleifen. |
else | Definiert den else-Teil in einer bedingten Anweisung. |
enum | Definiert einen enum-Typ. |
export | Wird verwendet, um Variablen, Funktionen oder Klassen aus einem Modul zu exportieren. |
extends | Wird für die Klassenvererbung verwendet und gibt an, dass eine Klasse von einer anderen Klasse erbt. |
false | Boolescher Wertfalse。 |
finally | Definierttry...catchder abschließende Ausführungsblock in der Anweisung. |
for | Verwendet inforSchleifen. |
from | Wird in Modul-Import-Anweisungen verwendet, um die Quelle des Moduls anzugeben. |
function | Definiert eine Funktion. |
get | Wird für die Getter-Methode eines Objekts verwendet. |
if | Wird für bedingte Prüfungen verwendet. |
implements | Wird verwendet, damit eine Klasse eine Schnittstelle implementiert. |
import | Wird verwendet, um Inhalte aus einem Modul zu importieren. |
in | Wird verwendet, um zu prüfen, ob ein Objekt eine angegebene Eigenschaft enthält, oder verwendet infor...inSchleifen. |
infer | Wird verwendet, um Typen in bedingten Typen abzuleiten. |
instanceof | Prüft, ob ein Objekt eine Instanz der angegebenen Klasse ist. |
interface | Wird verwendet, um eine Schnittstelle zu definieren. |
let | Definiert eine blockgebundene Variable. |
module | Definiert ein Modul (verwendet in früheren Versionen von TypeScript). |
namespace | Definiert einen Namensraum (verwendet in früheren Versionen von TypeScript). |
new | Erzeugt eine Instanz einer Klasse. |
null | Repräsentiert einen Nullwert. |
number | Repräsentiert den Typ number. |
object | Repräsentiert einen nicht-primitiven Typ. |
of | Verwendet infor...ofSchleifen. |
package | Wird im Modulsystem verwendet, um Pakete zu identifizieren. |
private | Wird als Zugriffsmodifizierer für Klassenmember verwendet und kennzeichnet private. |
protected | Wird als Zugriffsmodifizierer für Klassenmember verwendet und kennzeichnet protected. |
public | Wird als Zugriffsmodifizierer für Klassenmember verwendet und kennzeichnet public. |
readonly | Kennzeichnet eine schreibgeschützte Eigenschaft. |
require | Wird verwendet, um CommonJS-Module zu importieren. |
return | Beendet eine Funktion und kann einen Wert zurückgeben. |
set | Wird für die Setter-Methode eines Objekts verwendet. |
string | Repräsentiert den String-Typ. |
super | Wird verwendet, um die Methode oder den Konstruktor einer Elternklasse aufzurufen. |
switch | Wird in switch-Anweisungen verwendet. |
symbol | Repräsentiert den Symbol-Typ. |
this | Verweist auf die Instanz der aktuellen Klasse oder des aktuellen Objekts. |
throw | Löst eine Ausnahme aus. |
try | Wird in Anweisungen zur Ausnahmebehandlung verwendettry...catch。 |
true | Boolescher Werttrue。 |
type | Wird verwendet, um einen Typalias zu definieren. |
typeof | Ermittelt den Typ einer Variablen oder eines Ausdrucks. |
undefined | Repräsentiert einen undefinierten Wert. |
unique | Verwendet fürsymbolder eindeutige Bezeichner des Typs. |
var | Wird zum Deklarieren von Variablen verwendet (nicht mehr empfohlen). |
void | Stellt den Typ ohne Rückgabewert dar. |
while | Verwendet inwhileSchleifen. |
with | Wird verwendet, um einen Gültigkeitsbereich zu erstellen, in dem Verweise auf das Objekt weggelassen werden können (nicht empfohlen). |
yield | Wird in Generatorfunktionen verwendet, um die Ausführung des Generators anzuhalten und fortzusetzen. |
Leerraum und Zeilenumbrüche
TypeScript ignoriert Leerzeichen, Tabs und Zeilenumbrüche, die in einem Programm vorkommen.
Leerzeichen und Tabs werden normalerweise verwendet, um Code einzurücken, wodurch er leichter zu lesen und zu verstehen ist.
TypeScript ist case-sensitive
TypeScript unterscheidet zwischen Groß- und Kleinbuchstaben.
Semikolons sind optional
Jede Zeile mit Anweisungen ist eine Anweisung. Sie können Semikolons verwenden oder nicht. Semikolons sind in TypeScript optional, aber sie werden empfohlen.
Der folgende Code ist vollständig gültig:
console.log("Example")
console.log("Google");
Wenn Anweisungen in derselben Zeile geschrieben werden, müssen Semikolons verwendet werden, um sie zu trennen, andernfalls wird ein Fehler gemeldet, zum Beispiel:
console.log("Example");console.log("Google");
TypeScript-Kommentare
Kommentieren ist eine gute Angewohnheit. Obwohl viele Programmierer Kommentare hassen, wird dennoch empfohlen, dass Sie in jedem Codeabschnitt textliche Erklärungen schreiben.
Kommentare können die Lesbarkeit eines Programms verbessern.
Kommentare können einige Informationen über das Programm enthalten, wie den Autor des Codes, Beschreibungen von Funktionen usw.
Der Compiler ignoriert Kommentare.
TypeScript unterstützt zwei Arten von Kommentaren
Einzeilige Kommentare ( // )− Der Text nach // ist Kommentarinhalt.
Mehrzeilige Kommentare (/* */)− Diese Art von Kommentar kann sich über mehrere Zeilen erstrecken.
Kommentarbeispiele:
// This is a single-line comment /* This is a multi-line comment This is a multi-line comment This is a multi-line comment */
TypeScript und objektorientierte Programmierung
Objektorientierte Programmierung ist eine Methode zum Verstehen und Abstrahieren der realen Welt.
TypeScript ist eine objektorientierte Programmiersprache.
Objektorientierte Programmierung hat hauptsächlich zwei Konzepte: Objekte und Klassen.
- Objekt: Ein Objekt ist eine Instanz einer Klasse (Objekt bedeutet nicht, eine Freundin zu finden), es hat Zustand und Verhalten. Zum Beispiel ist ein Hund ein Objekt. Seine Zustände umfassen: Farbe, Name, Rasse; seine Verhaltensweisen umfassen: Schwanzwedeln, Bellen, Fressen usw.
- Klasse: Eine Klasse ist eine Vorlage, die das Verhalten und den Zustand einer Gruppe von Objekten beschreibt.
- Methode: Eine Methode stellt die Implementierungsschritte der Operationen einer Klasse dar.
In der folgenden Abbildung istgirl、boydie Klasse, und jede konkrete Person ist ein Objekt dieser Klasse:

TypeScript-Beispiel für objektorientierte Programmierung:
Das obige Beispiel definiert eine Klasse Site, die eine Methode name() hat. Diese Methode gibt die Zeichenkette Example im Terminal aus.
Das Schlüsselwort `new` erstellt ein Objekt der Klasse, und dieses Objekt ruft die Methode name() auf.
Der generierte JavaScript-Code nach der Kompilierung sieht wie folgt aus:
Die Ausführung des obigen JavaScript-Codes erzeugt die folgende Ausgabe:
ExampleAndere Erweiterungen