TypeScript Tutorial
Erste Schritte mit TypeScript
Suche…
Bemerkungen
TypeScript soll eine Obermenge von JavaScript sein, die in JavaScript übersetzt wird. Durch die Erzeugung von ECMAScript-kompatiblem Code kann TypeScript neue Sprachfunktionen einführen und dabei die Kompatibilität mit vorhandenen JavaScript-Engines beibehalten. ES3, ES5 und ES6 sind derzeit unterstützte Ziele.
Optionale Typen sind ein Hauptmerkmal. Typen ermöglichen eine statische Überprüfung mit dem Ziel, Fehler frühzeitig zu finden, und können die Funktionsweise mit Funktionen wie Code-Refactoring verbessern.
TypeScript ist eine von Microsoft entwickelte Open Source- und plattformübergreifende Programmiersprache. Der Quellcode ist auf GitHub verfügbar .
Versionen
Ausführung | Veröffentlichungsdatum |
---|---|
2.4.1 | 2017-06-27 |
2.3.2 | 2017-04-28 |
2.3.1 | 2017-04-25 |
2.3.0 Beta | 2017-04-04 |
2.2.2 | 2017-03-13 |
2.2 | 2017-02-17 |
2.1.6 | 2017-02-07 |
2.2 Beta | 2017-02-02 |
2.1.5 | 2017-01-05 |
2.1.4 | 2016-12-05 |
2.0.8 | 2016-11-08 |
2.0.7 | 2016-11-03 |
2.0.6 | 2016-10-23 |
2.0.5 | 2016-09-22 |
2.0 Beta | 2016-07-08 |
1.8.10 | 2016-04-09 |
1.8.9 | 2016-03-16 |
1.8.5 | 2016-03-02 |
1.8.2 | 2016-02-17 |
1.7.5 | 2015-12-14 |
1.7 | 2015-11-20 |
1.6 | 2015-09-11 |
1.5.4 | 2015-07-15 |
1,5 | 2015-07-15 |
1.4 | 2015-01-13 |
1.3 | 2014-10-28 |
1.1.0.1 | 2014-09-23 |
Installation und Einrichtung
Hintergrund
TypeScript ist eine typisierte JavaScript-Obermenge, die direkt in JavaScript-Code kompiliert wird. TypScript-Dateien verwenden im Allgemeinen die Erweiterung .ts
. Viele IDEs unterstützen TypeScript, ohne dass ein anderes Setup erforderlich ist, aber TypeScript kann auch mit dem TypeScript Node.JS-Paket von der Befehlszeile aus kompiliert werden.
IDEs
Visual Studio
-
Visual Studio 2015
enthält TypeScript. -
Visual Studio 2013 Update 2
oder höher enthält TypeScript oder Sie können TypeScript für frühere Versionen herunterladen .
Visual Studio Code
- Visual Studio Code (vscode) bietet kontextabhängige Autovervollständigung sowie Refactoring- und Debugging-Tools für TypeScript. vscode ist selbst in TypeScript implementiert. Verfügbar für Mac OS X, Windows und Linux.
WebStorm
-
WebStorm 2016.2
TypeScript und einen integrierten Compiler. [Webstorm ist nicht kostenlos]
IntelliJ IDEA
-
IntelliJ IDEA 2016.2
bietet Unterstützung für Typescript und einen Compiler über ein Plugin , das vom Jetbrains-Team verwaltet wird. [IntelliJ ist nicht frei]
Atom & Atom-Typoskript
-
Atom
unterstützt TypeScript mit dem Atom-Typoscript- Paket.
Erhabener Text
-
Sublime Text
unterstützt TypeScript mit dem Typoscript- Paket.
Befehlszeilenschnittstelle installieren
Installieren Sie Node.js
Installieren Sie das npm-Paket global
Sie können TypeScript global installieren, um von jedem Verzeichnis aus darauf zugreifen zu können.
npm install -g typescript
oder
Installieren Sie das npm-Paket lokal
Sie können TypeScript lokal installieren und in package.json speichern, um auf ein Verzeichnis zu beschränken.
npm install typescript --save-dev
Installationskanäle
Sie können installieren von:
- Stabiler Kanal:
npm install typescript
- Betakanal:
npm install typescript@beta
- Dev channel:
npm install typescript@next
TypeScript-Code wird kompiliert
Der tsc
Kompilierungsbefehl wird mit typescript
tsc
, mit dem Code kompiliert werden kann.
tsc my-code.ts
Dadurch wird eine Datei my-code.js
erstellt.
Kompilieren Sie mit tsconfig.json
Sie können auch Kompilierungsoptionen bereitstellen, die mit Ihrem Code über eine Datei tsconfig.json
werden. Um ein neues TypeScript-Projekt zu starten, cd
in einem Terminalfenster in das Stammverzeichnis des tsc --init
und tsc --init
. Dieser Befehl generiert eine Datei " tsconfig.json
" mit minimalen Konfigurationsoptionen (ähnlich wie unten).
{ "compilerOptions": { "module": "commonjs", "target": "es5", "noImplicitAny": false, "sourceMap": false, "pretty": true }, "exclude": [ "node_modules" ] }
Mit einer Datei tsconfig.json
, die sich im Stammverzeichnis Ihres TypeScript-Projekts befindet, können Sie den Befehl tsc
zum Ausführen der Kompilierung verwenden.
Hallo Welt
class Greeter {
greeting: string;
constructor(message: string) {
this.greeting = message;
}
greet(): string {
return this.greeting;
}
};
let greeter = new Greeter("Hello, world!");
console.log(greeter.greet());
Hier haben wir eine Klasse, Greeter
, die einen constructor
und eine greet
Methode hat. Wir können eine Instanz der Klasse mit dem new
Schlüsselwort erstellen und eine Zeichenfolge übergeben, die die greet
Methode an die Konsole ausgeben soll. Die Instanz unserer Greeter
Klasse wird in der greeter
Variablen gespeichert, die wir dann als greet
Methode aufrufen.
Grundlegende Syntax
TypeScript ist eine typisierte Obermenge von JavaScript, was bedeutet, dass der gesamte JavaScript-Code gültiger TypeScript-Code ist. TypeScript fügt darüber hinaus viele neue Funktionen hinzu.
Mit TypeScript wird JavaScript mehr wie eine stark typisierte, objektorientierte Sprache, die C # und Java ähnelt. Dies bedeutet, dass TypeScript-Code für große Projekte leichter zu verwenden ist und dass Code leichter zu verstehen und zu verwalten ist. Die starke Typisierung bedeutet auch, dass die Sprache vorkompiliert werden kann (und ist) und dass Variablen keine Werte zugewiesen werden können, die außerhalb ihres angegebenen Bereichs liegen. Wenn zum Beispiel eine TypeScript-Variable als Zahl deklariert ist, können Sie ihr keinen Textwert zuweisen.
Diese starke Typisierung und Objektorientierung erleichtert das Debuggen und Verwalten von TypeScript. Dies waren zwei der schwächsten Punkte von Standard-JavaScript.
Typanmeldungen
Sie können Typdeklarationen zu Variablen, Funktionsparametern und Funktionsrückgabetypen hinzufügen. Der Typ wird wie folgt nach einem Doppelpunkt hinter dem Variablennamen geschrieben: var num: number = 5;
Der Compiler überprüft dann die Typen (wenn möglich) während des Kompilierens und meldet Typfehler.
var num: number = 5;
num = "this is a string"; // error: Type 'string' is not assignable to type 'number'.
Die Grundtypen sind:
-
number
(sowohl Ganzzahlen als auch Gleitkommazahlen) -
string
-
boolean
-
Array
Sie können die Typen der Elemente eines Arrays angeben. Es gibt zwei gleichwertige Möglichkeiten, Array-Typen zu definieren:Array<T>
undT[]
. Zum Beispiel:-
number[]
- Zahlenfeld -
Array<string>
- Array von Zeichenfolgen
-
- Tuples. Tupel haben eine feste Anzahl von Elementen mit bestimmten Typen.
-
[boolean, string]
- Tupel, wobei das erste Element ein Boolean und das zweite Element ein String ist. -
[number, number, number]
- Tupel aus drei Zahlen.
-
-
{}
- Objekt, Sie können seine Eigenschaften oder den Indexer definieren-
{name: string, age: number}
- Objekt mit Namens- und Altersattributen -
{[key: string]: number}
- ein Wörterbuch mit Zahlen, die durch einen String indiziert sind
-
-
enum
-{ Red = 0, Blue, Green }
- Aufzählung, die Zahlen zugeordnet ist - Funktion. Sie geben Typen für die Parameter und den Rückgabewert an:
-
(param: number) => string
- Funktion, bei der ein Parameter für die Anzahl von Zeichenfolgen zurückgegeben wird -
() => number
- Funktion ohne Parameter, die eine Nummer zurückgeben. -
(a: string, b?: boolean) => void
- Funktion, die einen String und optional einen Boolean ohne Rückgabewert übernimmt.
-
-
any
- Erlaubt jeden Typ. Ausdrücke, dieany
werden nicht typgeprüft. -
void
- steht für "nothing", kann als Funktionsrückgabewert verwendet werden. Nurnull
undundefined
sind Teil desvoid
Typs. -
never
-
let foo: never;
-Der Typ der Variablen unter Typwächtern, die niemals wahr sind. -
function error(message: string): never { throw new Error(message); }
- Als Rückgabetyp von Funktionen, die niemals zurückgegeben werden.
-
-
null
- Typ für den Wertnull
.null
ist implizit Teil jedes Typs, sofern keine strengen Nullprüfungen aktiviert sind.
Casting
Sie können das explizite Gießen über spitze Klammern durchführen, zum Beispiel:
var derived: MyInterface;
(<ImplementingClass>derived).someSpecificMethod();
Dieses Beispiel zeigt eine derived
Klasse, die vom Compiler als MyInterface
behandelt wird. Ohne das Casting in der zweiten Zeile würde der Compiler eine Ausnahme someSpecificMethod()
, da someSpecificMethod()
nicht verstanden wird. someSpecificMethod()
Casting durch <ImplementingClass>derived
den Compiler an, was zu tun ist.
Eine andere Art des Castings in Typescript ist das Schlüsselwort as
:
var derived: MyInterface;
(derived as ImplementingClass).someSpecificMethod();
Seit Typescript 1.6 wird standardmäßig das Schlüsselwort as
, da die Verwendung von <>
in .jsx- Dateien mehrdeutig ist. Dies ist in der offiziellen Dokumentation zu TypeScript erwähnt .
Klassen
Klassen können im TypeScript-Code definiert und verwendet werden. Weitere Informationen zu Klassen finden Sie auf der Dokumentationsseite Klassen .
TypeScript REPL in Node.js
Für die Verwendung von TypeScript REPL in Node.js können Sie das Tsun-Paket verwenden
Installieren Sie es global mit
npm install -g tsun
und führen Sie Ihr Terminal oder die Eingabeaufforderung mit dem Befehl tsun
Anwendungsbeispiel:
$ tsun
TSUN : TypeScript Upgraded Node
type in TypeScript expression to evaluate
type :help for commands in repl
$ function multiply(x, y) {
..return x * y;
..}
undefined
$ multiply(3, 4)
12
Ausführen von TypeScript mit ts-node
ts-node ist ein npm-Paket, mit dem der Benutzer tsc
Dateien direkt ausführen kann, ohne dass er mit tsc
vorkompiliert werden tsc
. Es bietet auch REPL .
Installieren Sie ts-node global mit
npm install -g ts-node
ts-node enthält keinen TypScript-Compiler, daher müssen Sie ihn möglicherweise installieren.
npm install -g typescript
Skript ausführen
Um ein Skript mit dem Namen main.ts auszuführen , führen Sie Folgendes aus
ts-node main.ts
// main.ts console.log("Hello world");
Verwendungsbeispiel
$ ts-node main.ts
Hello world
REPL ausführen
Um REPL auszuführen, führen Sie den Befehl ts-node
Verwendungsbeispiel
$ ts-node
> const sum = (a, b): number => a + b;
undefined
> sum(2, 2)
4
> .exit
Um REPL zu .exit
verwenden Sie den Befehl .exit
oder drücken Sie zweimal .exit
CTRL+C