TypeScript Tutorial: Was ist eine Schnittstelle, ein Enumerationselement und ein Array mit Beispiel
Was ist TypeScript?
TypeScript ist eine Obermenge von JavaSkript. TypeScript ist eine rein objektorientierte Programmiersprache, die Klassen, Schnittstellen usw. unterstรผtzt. Es ist eine Open-Source-Sprache, die von Microsoft das den Code statisch kompiliert zu JavaSkript. Es kann problemlos in einem Browser oder Nodejs ausgefรผhrt werden.
Alle neuesten Features fรผr ECMAScript werden unterstรผtzt in TypeScript und darรผber hinaus TypeScript verfรผgt รผber eigene objektorientierte Funktionen wie Schnittstellen, Umgebungsdeklaration, Klassenvererbung usw., die bei der Entwicklung einer groรen Anwendung hilfreich sind, was sonst schwierig wรคre JavaSkript.
Herunterladen und Installieren TypeScript
Hier ist die Schritt-fรผr-Schritt-Anleitung zum Herunterladen und Installieren TypeScript:
Schritt 1) โโLaden Sie Nodejs herunter und installieren Sie es
Gehen Sie zur offiziellen Website von nodejs: https://nodejs.org/en/download/ und laden Sie nodejs entsprechend Ihrem Betriebssystem herunter und installieren Sie es. Die detaillierte Anleitung zum Herunterladen von nodejs finden Sie hier: https://www.guru99.com/download-install-node-js.html
Schritt 2) รberprรผfen Sie die Nodejs- und NPM-Version
Um zu รผberprรผfen, ob nodejs und npm installiert sind, รผberprรผfen Sie einfach die Version in Ihrer Eingabeaufforderung.
D:\typeproject>node --version V10.15.1 D:\typeproject>npm --version 6.4.1
Sie haben also NodeJS v10 und NPM 6 installiert.
Schritt 3) TypeScript Installation
Erstellen Sie Ihr Projektverzeichnis typeproject/ und fรผhren Sie npm init aus, wie im folgenden Befehl gezeigt:
npm init
Schritt 4) Starten Sie die Installation
Jetzt erstellen wir das Paket .json, das die Abhรคngigkeiten fรผr unser Projekt speichert.
Nach Abschluss der Installation TypeScript wie folgt:
npm -g install typescript
Der obige Befehl รผbernimmt die Installation TypeScript. Durch Hinzufรผgen von โ-gโ zu npm install wird installiert TypeScript global. Der Vorteil der Verwendung von -g ist, dass Sie verwenden kรถnnen TypeScript tsc Befehl aus jedem Verzeichnis, da es global installiert ist. Falls Sie es nicht installieren mรถchten TypeScript Verwenden Sie global den folgenden Befehl:
npm --save install typescript
Erstellen Sie den Ordner src/ in Ihrem Projektverzeichnis und erstellen Sie im Ordner src/ TypeScript Datei test.ts und schreiben Sie Ihren Code.
Beispiel: test.ts
function add(x:number, y:number) {
return x+y;
}
let sum = add(5,10);
console.log(sum);
Kompilieren TypeScript Code zu Javascript
Um den obigen Code zu kompilieren, verwenden Sie den folgenden Befehl:
If TypeScript global installiert ist, verwenden Sie den folgenden Befehl:
tsc test.ts
If TypeScript lokal in Ihrem Projekt installiert ist, mรผssen Sie den Pfad von verwenden TypeScript von node_modules wie gezeigt:
node_modules/typescript/bin/tsc test.ts
Der obige Befehl erstellt eine test.js-Datei und kompiliert den Code in Javascript.
Beispiel: test.js
function add(x, y) {
return x + y;
}
var sum = add(5, 10);
console.log(sum);
Ausfรผhren Javascript mit Nodejs
In dieser TypeScript Tutorial: Wir fรผhren test.js in nodejs wie folgt aus:
D:\typeproject\src>node test.js 15
Der Wert consoled wird bei der Ausfรผhrung von test.js angezeigt
Ausfรผhren JavaSkript im Browser
Ejemplo:
<html> <head></head> <body> <script type="text/javascript" src="test.js"></script> </body> </html>
Kompilieren TypeScript Code zu Javascript mit EcmaScript-Version
TypeScript unterstรผtzt alle verรถffentlichten Ecmascript-Funktionen und Entwickler kรถnnen diese beim Codieren verwenden. Allerdings werden nicht alle neuen Funktionen von รคlteren Browsern unterstรผtzt, weshalb Sie JavaScript in eine รคltere Version von Ecmascript kompilieren mรผssen. TypeScript bietet Compileroptionen, die dies ermรถglichen.
Beispiel: test.ts
var addnumbers = (a, b) => {
return a+b;
}
addnumbers(10, 20);
Um die ES-Version Ihrer Wahl zu kompilieren, kรถnnen Sie die Option โtargetโ oder โtโ in Ihrem Befehl wie folgt verwenden:
tsc --target ES6 test.ts OR tsc -t ES6 test.ts
Standardmรครig ist das Ziel ES3. Falls Sie es รคndern mรถchten, kรถnnen Sie den obigen Befehl verwenden.
Derzeit verwenden wir ES6 in diesem TypeScript Tutorial als Ziel:
tsc --target ES6 test.ts
test.ts zu test.js
var addnumbers = (a, b) => {
return a+b;
}
addnumbers(10, 20);
Der Code bleibt unverรคndert, da die von Ihnen verwendete Pfeilfunktion eine ES6-Funktion ist und beim Kompilieren in ES6 nicht geรคndert wird.
Standardmรครig ist das Ziel ES3. Ohne Ziel erhalten Sie test.js als:
var addnumbers = function (a, b) {
return a + b;
};
addnumbers(10, 20);
Hier wird der dicke Pfeil in eine normale anonyme Funktion geรคndert.
Variablen in TypeScript
Variablen werden zum Speichern von Werten verwendet und der Wert kann eine Zeichenfolge, eine Zahl, ein Boolean-Wert oder ein Ausdruck sein. Wenn es um Variablen in TypeScript, sie รคhneln JavaSkript. Lernen wir also, Variablen zu deklarieren und ihnen Werte zuzuweisen in TypeScript.
Variablen kรถnnen nicht ohne Definition im Code verwendet werden. Um eine Variable zu deklarieren, kรถnnen Sie verwenden
jung Stichwort,
lassen Stichwort
const Stichwort
Arbeiten mit Variablen in TypeScript ist รคhnlich wie Javascript und wird von Javascript-Kennern sehr einfach gefunden. Nur Variablen wie lassen , const werden im Vergleich zu nicht oft verwendet jung.
Variablen mit var deklarieren
Syntax:
var firstname = "Roy";
Werfen wir einen Blick auf einige TypeScript Beispiele zum Verstรคndnis der Funktionsweise des Schlรผsselworts var und des Umfangs von Variablen, die mit deklariert werden jung Stichwort.
Beispiel 1:
var k = 1; // variable k will have a global scope
function test() {
var c = 1; // variable c is local variable and will be accessible inside function test, it will not be available outside the function.
return k++;
}
test(); // output as 1
test(); // output as 2
alert(c); // will throw error , Uncaught ReferenceError: c is not defined
Beispiel 2:
var t = 0; // variable t is declared in global scope.
function test() {
var t = 10; //variable t is again redeclared inside function with value 10, so here t is local to the function and changes done to it will remain inside the function.
return t;
}
test(); // will return 10.
console.log(t); // will console 0.
Beispiel 3:
var i = 0;
function test() {
if (i>0) {
var t = 1;
}
return t;
}
test(); // the value returned will be undefined. The if-block has the variable which gets executed when I> 0. Over here the if-block is not expected but you are still having a reference to the variable t, and it returns undefined, this is because var defined variables once defined inside a function will have reference to it inside the function.
i++; // here value of i is incremented.
test(); // since i >0 the if block is executed and value returned is 1.
Variablen mit let deklarieren
Die TypeScript Die Syntax fรผr let ist wie folgt:
Syntax:
let name="Roy";
Die Arbeit von lassen Variable ist fast identisch mit jung, aber mit einem kleinen Unterschied und wird das gleiche verstehen mit einem TypeScript Beispiel.
Ejemplo:
let i = 1;
function test() {
if (i>0) {
let t = 1;
}
return t;
}
test(); // throws an error : Uncaught ReferenceError: t is not defined.
Oben TypeScript Beispiel wirft einen Fehler, aber das gleiche hรคtte gut funktioniert, wenn es mit dem jung Stichwort. Variablen verwenden lassen sind innerhalb des deklarierten Blockbereichs verfรผgbar, beispielsweise ist die Variable t nur innerhalb des if-Blocks und nicht fรผr die gesamte Funktion verfรผgbar.
Auch wenn Sie eine Variable innerhalb einer Funktion oder einer For-Schleife, While-Schleife deklarieren, TypeScript switch-Block, steht Ihnen nur innerhalb dieses Blocks zur Verfรผgung und es gibt keinen Verweis darauf auรerhalb des Blocks und es wird ein Fehler ausgegeben, wenn die Variable auรerhalb des Blocks verwendet wird. Dies ist der Hauptunterschied zwischen mit var- und let-Schlรผsselwรถrtern deklarierten Variablen.
Variablen mit const deklarieren
Const bedeutet konstante Variablen. Sie รคhneln Let-Variablen, mit dem einzigen Unterschied, dass ein einmal zugewiesener Wert nicht mehr geรคndert werden kann.
Syntax:
const name;
Ejemplo:
const age = "25"; age="30"; // will throw an error : Uncaught TypeError: Assignment to constant variable.
Daher kรถnnen Benutzer const-Variablen nur dann verwenden, wenn sie wissen, dass sie die ihr zugewiesenen Werte nicht รคndern mรผssen.
Typen in TypeScript
TypeScript ist eine stark typisierte Sprache, JavaScript hingegen nicht. Eine Variable, deren Wert als Zeichenfolge definiert ist, kann problemlos in eine Zahl geรคndert werden in JavascriptDasselbe wird nicht toleriert in TypeScript. in TypeScript, der Typ einer Variablen wird nur zu Beginn definiert und muss wรคhrend der gesamten Ausfรผhrung derselbe Typ bleiben. Jede รnderung daran fรผhrt zu einem Kompilierfehler wรคhrend der Kompilierung in JavaScript.
Folgende Typen sind mรถglich:
- Nummer
- Schnur
- Boolean
- Jedes
- Leere
Nummer
Akzeptiert nur Ganzzahlen, Gleitkommazahlen, Brรผche usw.
Syntax:
let a :number = 10; let marks :number = 150; let price :number = 10.2;
Hier sind einige wichtige Methoden, die fรผr Zahlentypen verwendet werden kรถnnen:
toFixed() โ Es wandelt die Zahl in eine Zeichenfolge um und behรคlt die der Methode zugewiesenen Dezimalstellen bei.
toString () โ Diese Methode wandelt eine Zahl in eine Zeichenfolge um.
Wert von() โ Diese Methode gibt den Grundwert der Zahl zurรผck.
toPrecision() โ Diese Methode formatiert die Zahl auf eine angegebene Lรคnge.
Beispiel: mit allen String-Methoden
let _num :number = 10.345; _num.toFixed(2); // "10.35" _num.valueOf(); // 10.345 _num.toString(); // "10.345" _num.toPrecision(2); //"10"
Schnur
String: nur Stringwerte
Syntax:
let str :string = "hello world";
Hier sind einige wichtige Methoden, die fรผr String-Typen verwendet werden kรถnnen:
- gespalten() โ diese Methode teilt die Zeichenfolge in ein Array auf.
- charat() โ Diese Methode gibt das erste Zeichen fรผr den angegebenen Index zurรผck.
- Index von() โ Diese Methode gibt die Position des ersten Vorkommens fรผr den ihr zugewiesenen Wert an.
- Ersetzen () โ Diese Methode benรถtigt zwei Zeichenfolgen, zunรคchst den Wert, der in der Zeichenfolge gesucht werden soll, und falls vorhanden, wird dieser durch die zweite ersetzt und eine neue Zeichenfolge zurรผckgegeben.
- Trim () โ Diese Methode entfernt Leerzeichen von beiden Seiten der Zeichenfolge.
- substr() โ Diese Methode gibt einen Teil der Zeichenfolge zurรผck, der von der als Start und Ende angegebenen Position abhรคngt.
- Teilzeichenfolge() โ Diese Methode gibt einen Teil der Zeichenfolge zurรผck, der von der als Start und Ende angegebenen Position abhรคngt. Das Zeichen an der Endposition wird ausgeschlossen.
- zuGroรbuchstaben() โ konvertiert die Zeichenfolge in Groรbuchstaben
- toLowerCase() โ wandelt die Zeichenfolge in Kleinbuchstaben um.
Ejemplo:
let _str:string = "Typescript";
_str.charAt(1); // y
_str.split(""); //["T", "y", "p", "e", "s", "c", "r", "i", "p", "t"]
_str.indexOf("s"); //4 , gives -1 is the value does not exist in the string.
_str.replace("Type", "Coffee"); //"Coffeescript"
_str.trim(); //"Typescript"
_str.substr(4, _str.length); //"script"
_str.substring(4, 10); //"script"
_str.toUpperCase();//"TYPESCRIPT"
_str.toLowerCase();//"typescript"
Boolean
Akzeptiert logische Werte wie wahr, falsch, 0 und 1.
Syntax:
let bflag :boolean = 1; let status :boolean = true;
Jedes
Syntax:
let a :any = 123 a = "hello world"; // changing type will not give any error.
Mit deklarierte Variablen fรผr Der Typ kann die Variable als Zeichenfolge, Zahl, Array, Boolescher Wert oder ungรผltig annehmen. TypeScript wird keinen Kompilierfehler werfen; dies ist รคhnlich wie bei den in JavaSkript. Verwenden Sie Variablen eines beliebigen Typs nur, wenn Sie sich รผber den Werttyp, der dieser Variablen zugeordnet wird, nicht sicher sind.
Leere
Der Void-Typ wird meist als Rรผckgabetyp fรผr eine Funktion verwendet, die nichts zurรผckzugeben hat.
Syntax:
function testfunc():void{
//code here
}
TypeScript Feld
An Feld in TypeScript ist ein Datentyp, in dem Sie mehrere Werte speichern kรถnnen. Lernen Sie, wie Sie Werte fรผr Array-Operationen deklarieren und zuweisen in TypeScript.
Da TypeScript ist eine stark typisierte Sprache. Sie mรผssen angeben, was der Datentyp der Werte in einem Array sein soll. Andernfalls wird es als vom Typ โanyโ betrachtet.
Deklarieren und initialisieren Sie ein Array
Syntax:
let nameofthearray : Array<typehere>
Beispiel
let months: Array<string> = ["Jan", "Feb", "March", "April", "May", "June", "July", "Aug", "Sept", "Oct", "Nov", "Dec"]; //array with all string values.
let years: Array<number> = [2015, 2016, 2017, 2018, 2019]; //array will all numbers
let month_year: Array<string | number> = ["Jan", 2015, "Feb", 2016]; //array with string and numbers mixed.
let alltypes: Array<any> = [true, false, "Harry", 2000, { "a": "50", "b": "20" }]; //array of all types boolean, string , number , object etc.
Verschiedene Mรถglichkeiten, auf Elemente aus einem Array zuzugreifen
Um die Elemente aus einem Array abzurufen, beginnen die Werte vom Index 0 bis zur Lรคnge des Arrays.
Ejemplo:
let years: Array<number> = [ 2016, 2017, 2018, 2019]; //array will all numbers years[0]; // output will be 2016 years[1]; // output will be 2017 years[2]; // output will be 2018 years[3]; // output will be 2019
Sie kรถnnen die Elemente aus einem Array auch abrufen mit TypeScript fรผr Schleife wie unten dargestellt:
Die Verwendung von TypeScript for-Schleife
let years: Array<number> = [ 2016, 2017, 2018, 2019];
for (let i=0;i<=years.length; i++) {
console.log(years[i]);
}
Output:
2016
2017
2018
2019
For-In-Schleife verwenden
let years: Array<number> = [ 2016, 2017, 2018, 2019];
for (let i in years) {
console.log(years[i])
}
Output:
2016
2017
2018
2019
Verwendung einer for-of-Schleife
let years: Array<number> = [ 2016, 2017, 2018, 2019];
for (let i of years) {
console.log(i)
}
Output:
2016
2017
2018
2019
Verwendung der foreach-Schleife
let years: Array<number> = [ 2016, 2017, 2018, 2019];
years.forEach(function(yrs, i) {
console.log(yrs);
});
Output:
2016
2017
2018
2019
TypeScript Array-Methoden
TypeScript Array-Objekte haben viele Eigenschaften und Methoden, die Entwicklern helfen, Arrays einfach und effizient zu handhaben. Sie kรถnnen den Wert einer Eigenschaft abrufen, indem Sie arrayname.property angeben, und die Ausgabe einer Methode, indem Sie arrayname.method() angeben.
Lรคngeneigenschaft
=> Wenn Sie die Anzahl der Elemente in einem Array wissen mรถchten, kรถnnen Sie die Lรคngeneigenschaft verwenden.
Reverse-Methode
=> Sie kรถnnen die Reihenfolge der Elemente in einem Array mithilfe einer Umkehrmethode umkehren.
Sortiermethode
=> Sie kรถnnen die Elemente in einem Array mithilfe der Sortiermethode sortieren.
Pop-Methode
=> Sie kรถnnen das letzte Element eines Arrays mithilfe einer Pop-Methode entfernen.
Shift Methode
=> Sie kรถnnen das erste Element eines Arrays mit der Shift-Methode entfernen.
Push-Methode
=> Sie kรถnnen einen Wert als letztes Element des Arrays hinzufรผgen.
Concat-Methode
=> Sie kรถnnen zwei Arrays zu einem Array-Element zusammenfรผgen.
Beispiel fรผr die Lรคngeneigenschaft
let months: Array<string> = ["Jan", "Feb", "March", "April", "May", "June", "July", "Aug", "Sept", "Oct", "Nov", "Dec"]; //array with all string values. console.log(months.length); // 12
Beispiel fรผr die umgekehrte Methode
let months: Array<string> = ["Jan", "Feb", "March", "April", "May", "June", "July", "Aug", "Sept", "Oct", "Nov", "Dec"]; //array with all string values. console.log(months.reverse()); // ["Dec", "Nov", "Oct", "Sept", "Aug", "July", "June", "May", "April", "March", "Feb", "Jan"]
Beispiel fรผr Sortiermethode
let months: Array<string> = ["Jan", "Feb", "March", "April", "May", "June", "July", "Aug", "Sept", "Oct", "Nov", "Dec"]; //array with all string values. console.log(months.sort()); // ["April", "Aug", "Dec", "Feb", "Jan", "July", "June", "March", "May", "Nov", "Oct", "Sept"]
Beispiel fรผr die Pop-Methode
let months: Array<string> = ["Jan", "Feb", "March", "April", "May", "June", "July", "Aug", "Sept", "Oct", "Nov", "Dec"]; //array with all string values. console.log(months.pop()); //Dec
Beispiel fรผr die Shift-Methode
let months: Array<string> = ["Jan", "Feb", "March", "April", "May", "June", "July", "Aug", "Sept", "Oct", "Nov", "Dec"]; //array with all string values. console.log(months.shift()); // Jan
Beispiel fรผr Push-Methode
let years: Array<number> = [2015, 2016, 2017, 2018, 2019]; //array will all numbers
console.log(years.push(2020));
years.forEach(function(yrs, i) {
console.log(yrs); // 2015 , 2016,2017, 2018, 2019,2020
});
Beispiel fรผr die Concat-Methode
let array1: Array<number> = [10, 20, 30]; let array2: Array<number> = [100, 200, 300]; console.log(array1.concat(array2)); //[10, 20, 30, 100, 200, 300]
Klasse in TypeScript
TypeScript ist eine Obermenge von JavaScript, also alles was mรถglich ist in JavaScript ist auch mรถglich in TypeScript. Klasse ist ein neues Feature, das ab ES6 hinzugefรผgt wurde, also frรผher in JavaSkript Die Klassentypfunktionalitรคt wurde mithilfe einer Funktion mit Prototypfunktionalitรคt ausprobiert, um Code wiederzuverwenden. Mit Klassen kรถnnen Sie unseren Code fast so gestalten, wie er in Sprachen wie Java, C#, Python usw. verwendet werden kann, wo der Code wiederverwendet werden kann. Mit der Funktion der Klasse in TypeScript/JavaSkript, es macht die Sprache sehr leistungsfรคhig.
Definieren einer Klasse in TypeScript
Hier ist eine grundlegende Klassensyntax in TypeScript:
class nameofclass {
//define your properties here
constructor() {
// initialize your properties here
}
//define methods for class
}
Beispiel: Ein funktionierendes Beispiel fรผr Class
class Students {
age : number;
name : string;
roll_no : number;
constructor(age: number, name:string, roll_no: number) {
this.age = age;
this.name = name;
this.roll_no = roll_no;
}
getRollNo(): number {
return this.roll_no;
}
getName() : string {
return this.name;
}
getAge() : number {
return this.age;
}
}
Im obigen Beispiel haben Sie eine Klasse namens Students. Es verfรผgt รผber die Eigenschaften โAlterโ, โNameโ und โRollennummerโ.
Konstrukteur in einem TypeScript Klasse
Das Beispiel der Klasse Students, das wir oben definiert haben, hat einen Konstruktor wie unten gezeigt:
constructor(age: number, name:string, roll_no: number) {
this.age = age;
this.name = name;
this.roll_no = roll_no;
}
Die Konstruktormethode verfรผgt รผber die Parameter โAlterโ, โNameโ und โRollennummerโ. Der Konstruktor kรผmmert sich beim Aufruf der Klasse um die Initialisierung der Eigenschaften. Der Zugriff auf die Eigenschaften erfolgt รผber fehlen uns die Worte. Stichwort. Beispiel: this.age fรผr den Zugriff auf die Alterseigenschaft, this.roll_no fรผr den Zugriff auf roll_no usw. Sie kรถnnen auch einen Standardkonstruktor verwenden, wie unten gezeigt:
constructor () {}
Methoden innerhalb eines TypeScript Klasse
Im Beispiel der Klasse โStudentsโ sind Methoden wie beispielsweise getRollNo(), getName(), getAge() definiert, die verwendet werden, um Details zu den Eigenschaften roll_no, Name und Alter anzugeben.
getRollNo(): number {
return this.roll_no;
}
getName() : string {
return this.name;
}
getAge() : number {
return this.age;
}
Erstellen einer Instanz der Klasse in TypeScript
Ejemplo:
In TypeScript Um eine Instanz einer Klasse zu erstellen, mรผssen Sie den Operator new verwenden. Wenn wir eine Instanz einer Klasse mit dem Operator new erstellen, erhalten wir das Objekt, das auf die Eigenschaften und Methoden der Klasse zugreifen kann, wie unten gezeigt:
let student_details = new Students(15, "Harry John", 33); student_details.getAge(); // 15 student_details.getName(); // Harry John
Kompilieren TypeScript Klasse bis JavaSkript
Sie kรถnnen den Befehl tsc wie unten gezeigt verwenden, um zu kompilieren Javascript.
Command: tsc Students.ts
Die Ausgabe von Javascript Der Code bei der Kompilierung sieht wie folgt aus:
var Students = /** @class */ (function () {
function Students(age, name, roll_no) {
this.age = age;
this.name = name;
this.roll_no = roll_no;
}
Students.prototype.getRollNo = function () {
return this.roll_no;
};
Students.prototype.getName = function () {
return this.name;
};
Students.prototype.getAge = function () {
return this.age;
};
return Students;
}());
In Javascript, die Klasse wird in eine selbstaufgerufene Funktion umgewandelt.
Klassenvererbung
Klassen kรถnnen mit vererbt werden erweitern Schlรผsselwort in TypeScript.
Syntax der Klassenvererbung:
class A {
//define your properties here
constructor() {
// initialize your properties here
}
//define methods for class
}
class B extends A {
//define your properties here
constructor() {
// initialize your properties here
}
//define methods for class
}
Klasse B wird teilen kรถnnen Klasse A Methoden und Eigenschaften.
Hier ist ein funktionierendes Beispiel einer Klasse, die Vererbung verwendet
class Person {
name: string;
age: number;
constructor(name: string, age: number) {
this.name = name;
this.age = age;
}
getName(): string {
return this.name;
}
getAge(): number {
return this.age;
}
}
class Student extends Person {
tmarks: number;
getMarks(): number {
return this.tmarks;
}
setMarks(tmarks) {
this.tmarks = tmarks;
}
}
let _std1 = new Student('Sheena', 24);
_std1.getAge(); // output is 24
_std1.setMarks(500);
_std1.getMarks(); // output is 500
Sie haben zwei Klassen: Person und Student. Die Student-Klasse erweitert Person, und das auf Student erstellte Objekt kann auf seine eigenen Methoden und Eigenschaften sowie auf die von ihm erweiterte Klasse zugreifen.
Lassen Sie uns nun einige weitere รnderungen an der obigen Klasse hinzufรผgen.
Ejemplo:
class Person {
name: string;
age: number;
constructor(name: string, age: number) {
this.name = name;
this.age = age;
}
getName(): string {
return this.name;
}
getAge(): number {
return this.age;
}
}
class Student extends Person {
tmarks: number;
constructor(name: string, age: number, tmarks: number) {
super(name, age);
}
getMarks(): number {
return this.tmarks;
}
setMarks(tmarks) {
this.tmarks = tmarks;
}
}
let _std1 = new Student('Sheena', 24, 500);
_std1.getAge(); // output is 24
_std1.getMarks(); // output is 500
Die รnderungen, die Sie im Vergleich zum vorherigen Beispiel hinzugefรผgt haben, bestehen darin, dass in der Klasse Student ein Konstruktor definiert ist. Der Konstruktor muss dieselben Parameter wie die Basisklasse verwenden und ggf. zusรคtzliche eigene Parameter hinzufรผgen.
In TypeScript Sie mรผssen super aufrufen, wobei alle Parameter als Basisparameter darin enthalten sind. Dies muss als Erstes im Konstruktor erfolgen. super fรผhrt den Konstruktor der erweiterten Klasse aus.
Zugriffsmodifikatoren in TypeScript
TypeScript unterstรผtzt รถffentliche, private und geschรผtzte Zugriffsmodifikatoren fรผr Ihre Methoden und Eigenschaften. Wenn keine Zugriffsmodifikatoren angegeben sind, wird die Methode oder Eigenschaft standardmรครig als รถffentlich betrachtet und ist vom Objekt der Klasse aus leicht zugรคnglich.
Bei privaten Zugriffsmodifikatoren ist der Zugriff รผber das Objekt der Klasse nicht mรถglich und sie sind nur fรผr die Verwendung innerhalb der Klasse vorgesehen. Sie sind fรผr die geerbte Klasse nicht verfรผgbar.
Im Falle geschรผtzter Zugriffsmodifikatoren sind sie fรผr die Verwendung innerhalb der Klasse und der geerbten Klasse gedacht und sind vom Objekt der Klasse aus nicht zugรคnglich.
Ejemplo:
class Person {
protected name: string;
protected age: number;
constructor(name: string, age: number) {
this.name = name;
this.age = age;
}
private getName(): string {
return this.name;
}
getDetails(): string {
return "Name is "+ this.getName();
}
}
class Student extends Person {
tmarks: number;
constructor(name: string, age: number, tmarks: number) {
super(name, age);
this.tmarks = tmarks;
}
getMarks(): number {
return this.tmarks;
}
getFullName(): string {
return this.name;
}
setMarks(tmarks) {
this.tmarks = tmarks;
}
}
let _std1 = new Student('Sheena', 24, 500);
_std1.getMarks(); // output is 500
_std1.getFullName(); // output is Sheena
_std1.getDetails(); // output is Name is Sheena
- Zur Alleinbenutzung: Auf Eigenschaften oder Methoden kann weder vom Objekt der Klasse noch von der abgeleiteten Klasse zugegriffen werden. Sie sind fรผr die interne Verwendung innerhalb der Klasse gedacht.
- Geschรผtzt: Auf Eigenschaften und Methoden kann das erstellte Objekt auch nicht zugreifen. Sie sind innerhalb der Klasse zugรคnglich und stehen der Klasse zur Verfรผgung, die sie erweitert.
- รffentlichkeit: Eigenschaften und Methoden werden ohne Schlรผsselwort deklariert. Der Zugriff auf sie ist รผber das Objekt der Klasse von auรen leicht mรถglich.
Schnittstelle in TypeScript
Eine der Kernfunktionen von TypeScript sind Schnittstellen. Die Schnittstelle ist ein Satz definierter Regeln, die von der Entitรคt, die sie verwendet, implementiert werden mรผssen. Die Entitรคt kann eine Klasse, Funktion oder Variable sein. Eine Schnittstelle kann aus Eigenschaften und Methoden bestehen. Sie kรถnnen Eigenschaften als optional definieren, indem Sie die Syntax โ?โ fรผr diese Eigenschaft oder Methode verwenden. Die Schnittstelle fรผgt eine strenge Typprรผfung fรผr jede Funktion, Variable oder Klasse hinzu, die die Schnittstelle implementiert.
Syntax einer Schnittstelle in TypeScript
interface Dimension {
width: string;
height: string;
}
Sie haben eine Schnittstelle mit dem Namen โDimensionโ definiert, die รผber die Eigenschaften โBreiteโ und โHรถheโ verfรผgt und beide รผber den Typ โStringโ verfรผgen.
Jetzt kann diese Schnittstelle durch eine Variable, eine Funktion oder eine Klasse implementiert werden. Hier ist das Beispiel einer Variablen, die die Schnittstelle Dimension implementiert.
Ejemplo:
interface Dimension {
width: string;
height: string;
}
let _imagedim: Dimension = {
width: "100px",
height: "200px"
};
Die Signatur der Schnittstellendimension hat Breite und Hรถhe und beide sind obligatorisch. Falls bei der Implementierung der Schnittstelle eine Eigenschaft fehlt oder der Typ geรคndert wird, kommt es beim Kompilieren des Codes zu Javascript zu einem Fehler bei der Kompilierung.
Wenn der obige Code in Javascript kompiliert wird, sieht er wie folgt aus:
var _imagedim = {
width: "100px",
height: "200px"
};
Sehen wir uns nun an, wie man eine Schnittstelle mit einer Funktion verwendet.
Verwenden von Interface fรผr eine Funktion als Rรผckgabetyp
Ejemplo:
interface Dimension {
width: string;
height: string;
}
function getDimension() : Dimension {
let width = "300px";
let height = "250px";
return {
width: width,
height: height
}
}
Im obigen Beispiel wird die Schnittstelle Dimension auf der Funktion getDimension() als Rรผckgabetyp implementiert. Der Rรผckgabetyp von getDimension() muss mit den fรผr Interface Dimension genannten Eigenschaften und Typ รผbereinstimmen.
Der kompilierte Code zu Javascript wird wie folgt sein:
function getDimension() {
var width = "300px";
var height = "250px";
return {
width: width,
height: height
};
}
Wenn der Rรผckgabetyp wรคhrend der Kompilierung nicht mit der Schnittstelle รผbereinstimmt, wird ein Fehler ausgegeben.
Schnittstelle als Funktionsparameter
interface Dimension {
width: string;
height: string;
}
function getDimension(dim: Dimension) : string {
let finaldim = dim.width +"-"+ dim.height;
return finaldim;
}
getDimension({width:"300px", height:"250px"}); // will get "300px-250px"
Im obigen Beispiel haben Sie Interface Dimension als Parameter fรผr die Funktion getDimension() verwendet. Wenn Sie die Funktion aufrufen, mรผssen Sie sicherstellen, dass der an sie รผbergebene Parameter mit der definierten Schnittstellenregel รผbereinstimmt.
Der kompilierte Code zu Javascript wird wie folgt sein:
function getDimension(dim) {
var finaldim = dim.width + "-" + dim.height;
return finaldim;
}
getDimension({ width: "300px", height: "250px" });
Klassenimplementierende Schnittstelle
Um die Schnittstelle mit einer Klasse nutzen zu kรถnnen, mรผssen Sie das Schlรผsselwort verwenden implementiert.
Syntax fรผr eine Klasse, die eine Schnittstelle implementiert:
class NameofClass implements InterfaceName {
}
Das folgende Beispiel zeigt die Funktionsweise der Schnittstelle mit Klasse.
interface Dimension {
width : string,
height: string,
getWidth(): string;
}
class Shapes implements Dimension {
width: string;
height: string;
constructor (width:string, height:string) {
this.width = width;
this.height = height;
}
getWidth() {
return this.width;
}
}
Im obigen Beispiel haben Sie die Schnittstelle Dimension mit den Eigenschaften width und height vom Typ string und einer Methode namens getWidth() definiert, die einen Rรผckgabewert als String hat.
Der kompilierte Code zu Javascript wird wie folgt sein:
var Shapes = /** @class */ (function () {
function Shapes(width, height) {
this.width = width;
this.height = height;
}
Shapes.prototype.getWidth = function () {
return this.width;
};
return Shapes;
}());
Funktionen in TypeScript
Funktionen sind Anweisungen, die zur Ausfรผhrung einer Aufgabe ausgefรผhrt werden. JavascriptDer grรถรte Teil des Codes ist in Form von Funktionen geschrieben und spielt eine wichtige Rolle. In TypeScriptstehen Ihnen Klassen, Schnittstellen, Module und Namespaces zur Verfรผgung, aber dennoch spielen Funktionen eine wichtige Rolle. Der Unterschied zwischen der Funktion in Javascript und TypeScript Funktion ist der Rรผckgabetyp, der verfรผgbar ist mit TypeScript Funktion.
JavaSkriptfunktion:
function add (a1, b1) {
return a1+b1;
}
TypeScript Funktion:
function add(a1 : number, b1: number) : number {
return a1 + b1;
}
In den oben genannten Funktionen wird der Name der Funktion hinzugefรผgt, die Parameter sind a1 und b1 beide haben einen Typ als Zahl, und der Rรผckgabetyp ist auch eine Zahl. Wenn Sie der Funktion einen String รผbergeben, wird beim Kompilieren ein Kompilierfehler ausgegeben. JavaSkript.
Aufruf der Funktion: add
let x = add(5, 10) ; // will return 15
let b = add(5); // will throw an error : error TS2554: Expected 2 arguments, but got 1.
let c = add(3,4,5); // will throw an error : error TS2554: Expected 2 arguments, but got 3.
let t = add("Harry", "John");// will throw an error : error TS2345: Argument of type '"Harry"' is not assignable to parameter of type 'number'.
Die Parameter a1 , b1 sind obligatorische Parameter und lรถsen einen Fehler aus, wenn sie nicht auf diese Weise empfangen werden. Auรerdem sind der Parametertyp und der Rรผckgabetyp sehr wichtig und kรถnnen nach der Definition nicht mehr geรคndert werden.
Optionale Parameter fรผr eine Funktion
In Javascript sind alle Parameter der Funktionen optional und werden als undefiniert betrachtet, wenn sie nicht รผbergeben werden. Dasselbe gilt jedoch nicht fรผr TypeScript, sobald Sie die Parameter definiert haben, mรผssen Sie sie auch senden. Falls Sie jedoch einen Parameter optional halten mรถchten, kรถnnen Sie dies tun, indem Sie? gegenรผber dem Parameternamen verwenden, wie unten gezeigt:
function getName(firstname: string, lastname?: string): string {
return firstname + lastname;
}
let a = getName("John"); // will return Johnundefined.
let b = getName("John", "Harry"); // will return JohnHarry
let c = getName("John", "H", "Harry"); // error TS2554: Expected 1-2 arguments, but got 3.
Bitte beachten Sie, dass die optionalen Parameter nur zuletzt in einer Funktion definiert werden mรผssen. Sie kรถnnen den ersten Parameter nicht als optional und den zweiten Parameter als obligatorisch festlegen. Wenn Sie die Funktion mit einem Parameter aufrufen, gibt der Compiler einen Fehler aus. Daher ist es notwendig, die optionalen Parameter am Ende beizubehalten.
Weisen Sie den Parametern Standardwerte zu
Sie kรถnnen Parametern Standardwerte zuweisen, wie unten gezeigt:
function getName(firstname: string, lastname = "Harry"): string {
return firstname + lastname;
}
let a = getName("John"); // will return JohnHarry
let b = getName("John", "H"); // will return JohnH
รhnlich wie bei optionalen Parametern mรผssen auch hier standardmรครig initialisierte Parameter am Ende einer Funktion beibehalten werden.
Ruheparameter
Sie haben gesehen, wie TypeScript behandelt obligatorische Parameter, optionale Parameter und die mit dem Standardwert initialisierten Parameter. Nun werden wir uns die Restparameter ansehen. Restparameter sind eine Gruppe optionaler Parameter, die gemeinsam definiert werden, und sie werden mithilfe von drei definiert Punkte (โฆ) gefolgt vom Namen des Parameters, der ein Array ist.
Syntax fรผr Rest-Parameter:
function testFunc(a: string, ...arr: string[]) :string {
return a + arr.join("");
}
Wie oben gezeigt, werden die restlichen Parameter mit (โฆparam-name) definiert. Der restliche Parameter ist ein Array, dem drei Punkte vorangestellt sind. An das Array werden alle Parameter รผbergeben. Sie kรถnnen die Funktion aufrufen, wie im folgenden Beispiel gezeigt:
Ejemplo:
let a = testFunc("Monday", "Tuesday", "Wednesday", "Thursday"); // will get output as MondayTuesdayWednesdayThursday
Pfeilfunktionen
Eine Pfeilfunktion ist eine der wichtigen Funktionen, die in ES6 verรถffentlicht wurden, und ist verfรผgbar in TypeScript auch. Die Syntax der Pfeilfunktion enthรคlt einen dicken Pfeil, weshalb die Funktion als Pfeilfunktion bezeichnet wird.
Syntax der Pfeilfunktion:
var nameoffunction = (params) => {
// code here
}
Wozu dient die Pfeilfunktion?
Schauen wir uns das Beispiel an, um den Anwendungsfall der Pfeilfunktion zu verstehen:
Ejemplo:
var ScoreCard = function () {
this.score = 0;
this.getScore = function () {
setTimeout(function () {
console.log(this.score); // gives undefined.
}, 1000);
}
}
var a = new ScoreCard();
a.getScore();
Sie haben eine anonyme Funktion erstellt, die รผber die Eigenschaft this verfรผgt. Score initialisiert auf 0 und eine Methode getScore, die intern einen setTimeout hat und in 1 Sekunde this.score trรถstet. Der getrรถstete Wert ergibt โundefiniertโ, obwohl Sie โthis.scoreโ definiert und initialisiert haben. Das Problem hier ist mit this Stichwort. Die Funktion in setTimeout hat ihr eigenes this und versucht, intern auf die Punktzahl zu verweisen. Da sie nicht definiert ist, gibt sie undefiniert aus.
Das Gleiche kann mit der Pfeilfunktion wie unten gezeigt erledigt werden:
var ScoreCard = function () {
this.score = 0;
this.getScore = function () {
setTimeout(()=>{
console.log(this.score); // you get 0
}, 1000);
}
}
var a = new ScoreCard();
a.getScore();
Sie haben die Funktion in setTimeout wie unten gezeigt in eine Pfeilfunktion geรคndert:
setTimeout(()=>{
console.log(this.score); // you get 0
}, 1000);
Eine Pfeilfunktion hat keine eigene fehlen uns die Worte. definiert und teilt sein รผbergeordnetes fehlen uns die Worte., sodass auรerhalb deklarierte Variablen mithilfe dieser Funktion innerhalb einer Pfeilfunktion leicht zugรคnglich sind. Sie sind aufgrund der kรผrzeren Syntax sowie fรผr Rรผckrufe, Event-Handler, Inside-Timing-Funktionen usw. nรผtzlich.
TypeScript Enums
TypeScript Enum ist ein Objekt, das eine Sammlung zusammengehรถriger, gespeicherter Werte enthรคlt. Javascript unterstรผtzt keine Enumerationen. Die meisten Programmiersprache Google Trends, Amazons Bestseller Java, C, C++ unterstรผtzt TypeScript Enum und es ist auch verfรผgbar mit TypeScript auch. Enumerationen werden mit dem Schlรผsselwort enum definiert.
Wie deklariere ich eine Enum?
Syntax:
enum NameofEnum {
value1,
value2,
..
}
Beispiel: Enum
enum Directions {
North,
South,
East,
West
}
Im obigen Beispiel haben Sie eine Enumeration namens Directions definiert. Der angegebene Wert ist Nord, Sรผd, Ost, West. Die Werte werden beginnend mit 0 fรผr den ersten Wert in der Aufzรคhlung nummeriert und anschlieรend um 1 fรผr den nรคchsten Wert erhรถht.
Deklarieren Sie eine Aufzรคhlung mit einem numerischen Wert
Wenn einer Aufzรคhlung standardmรครig kein Wert zugewiesen wird, wird dieser als Zahl betrachtet, die bei 0 beginnt. Das folgende Beispiel zeigt eine Aufzรคhlung mit einem numerischen Wert.
enum Directions {
North = 0,
South = 1,
East =2,
West =3
}
Sie kรถnnen der Aufzรคhlung auch einen Startwert zuweisen und die nรคchsten Aufzรคhlungswerte erhalten die inkrementierten Werte. Zum Beispiel:
enum Directions {
North = 5,
South, // will be 6
East, // 7
West // 8
}
Jetzt beginnt der Enum-Wert Nord mit 5, sodass Sรผd den Wert 6, Ost = 7 und West = 8 erhรคlt.
Sie kรถnnen auch Werte Ihrer Wahl zuweisen, anstatt die Standardwerte zu รผbernehmen. Zum Beispiel:
enum Directions {
North = 5,
South = 4,
East = 6,
West = 8
}
Wie greife ich auf eine Enum zu?
Das folgende Beispiel zeigt, wie Sie Enum in Ihrem Code verwenden:
enum Directions {
North,
South,
East,
West
}
console.log(Directions.North); // output is 0
console.log(Directions["North"]); // output is 0
console.log(Directions[0]); //output is North
Der fรผr Javascript kompilierte Code lautet wie folgt:
var Directions;
(function (Directions) {
Directions[Directions["North"] = 0] = "North";
Directions[Directions["South"] = 1] = "South";
Directions[Directions["East"] = 2] = "East";
Directions[Directions["West"] = 3] = "West";
})(Directions || (Directions = {}));
console.log(Directions.North);
console.log(Directions["North"]);
console.log(Directions[0]);
Da Javascript unterstรผtzt keine Enumerationen, es konvertiert die Enumeration in selbstaufgerufene Funktionen, wie oben gezeigt.
Deklarieren Sie eine Aufzรคhlung mit einem Zeichenfolgenwert
Sie kรถnnen Zeichenfolgenwerte Ihrer Wahl zuweisen, wie im folgenden Beispiel gezeigt:
Ejemplo:
enum Directions {
North = "N",
South = "S",
East = "E",
West = "W"
}
console.log(Directions.North); // output is N
console.log(Directions["North"]); // output is N
console.log(Directions[0]); // output is North
Der fรผr Javascript kompilierte Code lautet wie folgt:
var Directions;
(function (Directions) {
Directions["North"] = "N";
Directions["South"] = "S";
Directions["East"] = "E";
Directions["West"] = "W";
})(Directions || (Directions = {}));
console.log(Directions.North);
console.log(Directions["North"]);
console.log(Directions[0]);
Was sind die Module in TypeScript?
Die erstellten Dateien in TypeScript haben globalen Zugriff, was bedeutet, dass auf in einer Datei deklarierte Variablen in einer anderen Datei problemlos zugegriffen werden kann. Diese globale Natur kann zu Codekonflikten fรผhren und zur Laufzeit zu Problemen bei der Ausfรผhrung fรผhren. Sie verfรผgen รผber Export- und Importmodulfunktionen, mit denen Sie Konflikte globaler Variablen und Funktionen vermeiden kรถnnen. Diese Funktion ist verfรผgbar in JavaSkript mit ES6-Release und auch unterstรผtzt in TypeScript.
Warum brauchen Sie Module in TypeScript?
Das folgende Beispiel zeigt das Problem ohne Module:
Beispiel test1.ts
let age : number = 25;
Sie haben in test1.ts eine Variable โAlterโ vom Typ โNummerโ definiert.
Beispiel test2.ts
In der Datei test2.ts kรถnnen Sie problemlos auf die Variable zugreifen Alter definiert in test1.ts und รคndern Sie es auch wie unten gezeigt:
age = 30; // changed from 25 to 30. let _new_age = age;
Der obige Fall kann daher zu vielen Problemen fรผhren, da die Variablen global verfรผgbar sind und geรคndert werden kรถnnen.
Mit Module, bleibt der geschriebene Code im Gebietsschema der Datei und kann auรerhalb der Datei nicht aufgerufen werden. Um auf etwas aus der Datei zuzugreifen, muss sie mit dem Schlรผsselwort export exportiert werden. It wird verwendet, wenn Sie mรถchten, dass die Variable, Klasse, Funktion oder Schnittstelle in einer anderen Datei verwendet wird. Import wird verwendet, wenn Sie auch auf die exportierte Variable, Klasse, Schnittstelle oder Funktion zugreifen mรถchten. Dadurch bleibt der geschriebene Code in der Datei erhalten, und selbst wenn Sie dieselben Variablennamen definieren, werden sie nicht verwechselt und verhalten sich lokal in der Datei, in der sie deklariert werden.
Verwenden von Export und Import
Es gibt viele Mรถglichkeiten zum Exportieren und Importieren. Deshalb wird hier die Syntax besprochen, die am hรคufigsten verwendet wird.
Die Syntax fรผr Import und Export 1:
export nameofthevariable or class name or interface name etc
//To import above variable or class name or interface you have to use import as shown below:
Import {nameof thevariable or class name or interfacename} from "file path here without.ts"
Hier ist ein funktionierendes Beispiel fรผr die Verwendung von Export und Import.
Ejemplo:
test1.ts
export let age: number = 25;
Das Schlรผsselwort โExportโ wird verwendet, um die Altersvariable in einer anderen Datei freizugeben.
test2.ts
import { age } from "./test1"
let new_age :number = age;
Fรผr den Zugriff wird das Schlรผsselwort โImportโ verwendet Alter Variable, und Sie mรผssen den Dateispeicherort wie oben gezeigt angeben.
Syntax fรผr Import und Export 2:
Es gibt eine andere Mรถglichkeit zum Exportieren und Importieren. Die Syntax dafรผr ist wie folgt:
export = classname; import classname = require(โfile path of modulenameโ)
Wenn Sie verwenden exportieren = Um Ihr Modul zu exportieren, muss der Import โrequire(โDateipfad des Modulnamensโ) verwenden, um es zu importieren.
Hier ist ein funktionierendes Beispiel, das den obigen Fall zeigt:
Kunde.ts
class Customer {
name: string;
age: number;
constructor(name: string, age: number) {
this.name = name;
this.age = age;
}
getName(): string {
return this.name;
}
}
export = Customer;
testCustomer.ts
import Customer = require("./Customer");
let a = new Customer("Harry", 30);
alert(a.getName());
Modullader
Module kรถnnen nicht eigenstรคndig arbeiten, daher benรถtigen Sie einen Modullader, um die Importabhรคngigkeiten zu lokalisieren, wie Sie in TypeScript Beispiele siehe oben. Der verfรผgbare Modullader ist CommonJS fรผr nodejs und Require.js zur Ausfรผhrung im Browser.
Um Code mit dem CommonJS-Modul zu kompilieren, verwenden Sie den folgenden Befehl:
tsc --module commonjs testCustomer.ts
Um Code mit dem Requirejs-Modul zu kompilieren, verwenden Sie den folgenden Befehl:
tsc --module amd testCustomer.ts
Die abhรคngigen Dateien werden mit dem obigen Befehl in eine JS-Datei konvertiert.
Beispiel testCustomer.ts zu testCustomer.js mit Requirejs
define(["require", "exports", "./Customer"], function (require, exports, Customer) {
"use strict";
exports.__esModule = true;
var a = new Customer("Harry", 30);
alert(a.getName());
});
Beispiel: Customer.ts zu Customer.js mit Requirejs
define(["require", "exports"], function (require, exports) {
"use strict";
var Customer = /** @class */ (function () {
function Customer(name, age) {
this.name = name;
this.age = age;
}
Customer.prototype.getName = function () {
return this.name;
};
return Customer;
}());
return Customer;
});
Um es mit require.js zu testen, mรผssen Sie eine Datei namens main.js erstellen, die wie gezeigt auf die Abhรคngigkeiten verweist.
Hier ist die Ordnerstruktur:
src/
Customer.js
testCustomer.js
main.js
require.js // you can get this file from github or npm install requirejs
test.html
Main.js
define(function (require) {
var customer = require("./Customer");
var testCustomer = require("./testCustomer");
});
test.html
<!DOCTYPE html>
<html>
<head>
<title>TypeScript Module testing using Requirejs</title>
<script data-main="main" src="require.js"></script>
</head>
<body>
<h3>Testing modules using Requirejs</h3>
</body>
</html>
Namespaces in TypeScript
Namespace besteht im Wesentlichen aus einer Sammlung von Klassen, Schnittstellen, Variablen und Funktionen in einer Datei.
Namespace-Syntax
namespace name{
export class {
}
export interface {
}
export const constname;
}
Der zugehรถrige Code ist unter einem Namensraum verfรผgbar.
Arbeitsbeispiel fรผr einen Namespace: testnamespace.ts
namespace StudentSetup {
export interface StudDetails {
name: string;
age: number;
}
export function addSpace(str) { // will add space to the string given
return str.split("").join(" ");
}
export class Student implements StudDetails {
name: string;
age: number;
constructor(studentdetails: StudDetails) {
this.name = studentdetails.name;
this.age = studentdetails.age;
}
getName(): string {
return this.name;
}
}
}
Der Name des Namespace ist StudentSetup, Sie haben eine Schnittstelle โStudDetailsโ, die Funktion โaddSpaceโ und eine Klasse namens โStudentโ hinzugefรผgt.
Zugreifen auf Namespace
Nachfolgend sehen Sie den Code, in dem Sie den Namespace verwenden StudentSetup.
testStudentSetup.ts
let a = new StudentSetup.Student({ name: "Harry", age: 20 });
console.log("The name is :" + StudentSetup.addSpace(a.getName()));
Die in einem Namespace verfรผgbare Klasse, Schnittstelle oder Funktion muss mithilfe des Namens des Namespace-Beispiels referenziert werden StudentSetup.addSpace um auf die Funktion zuzugreifen, StudentSetup.Student um auf die Klasse zuzugreifen.
Sie kรถnnen beide Dateien wie unten gezeigt in ein JS kompilieren:
tsc --outFile namespace.js testnamespace.ts testStudentSetup.ts
รberprรผfen Sie die Ausgabe in der Eingabeaufforderung mit dem folgenden Befehl:
node namespace.js
Die Ausgabe wird wie folgt angezeigt:
The name is: H a r r y
Umgebungsdeklarationen in TypeScript
TypeScript ermรถglicht die Verwendung von JavaScript-Dateien von Drittanbietern mithilfe der Ambient-Deklaration. Der Vorteil dieser Funktion besteht darin, dass Sie nicht neu schreiben mรผssen und dennoch alle Funktionen der Bibliothek nutzen kรถnnen. TypeScript.
Ambient-Syntax
So deklarieren Sie das Ambient-Modul:
declare module moduleName {
//code here
}
Die Ambient-Datei muss wie folgt gespeichert werden:
filename.d.ts
Um die Datei zu verwenden Dateiname.d.ts In Ihrer .ts-Datei mรผssen Sie darauf verweisen als:
/// <reference path="filename.d.ts"/>
Die Ambient-Typdeklaration in TypeScript enthรคlt einen Verweis auf die Drittanbieterbibliothek und deklariert die erforderlichen Funktionen mit ihrem eigenen Typ erneut. Angenommen, Sie haben eine kleine JavaScript-Bibliothek, wie unten gezeigt:
Third Party JavaSkriptdatei: testString.js
Beispiel: testString.js
var StringChecks = {
isString: function (str) {
return typeof str === "string";
},
convertToUpperCase: function (str) {
return str.toUpperCase();
},
convertToLowerCase: function (str) {
return str.toLowerCase();
},
convertToStringBold: function (str) {
return str.bold();
}
};
Sie haben ein Objekt namens StringChecks, das Funktionen wie isString, convertToUpperCase, convertToLowerCase und converToStringBold hat.
Erstellen eines Ambient-Moduls in TypeScript
Jetzt erstellen wir ein Ambient-Modul, das auf die oben genannten js-Funktionen verweist und gemรคร unseren Anforderungen auch eine Typprรผfung hinzufรผgt.
Dateiname: tstring.d.ts
declare module TestString {
export interface StringsFunc {
isString(str: string): boolean;
convertToUpperCase(str: string): string;
convertToLowerCase(str: string): string;
convertToStringBold(str: string): string;
}
}
declare var StringChecks: TestString.StringsFunc;
Sie mรผssen einen Modulnamen als TestString definieren und die Schnittstelle StringsFunc exportiert haben.
isString(str: string): boolean
=> Dies nimmt param als Zeichenfolge an und der Rรผckgabetyp ist boolesch. Wenn Sie den Parameter in Ihrer .ts-Datei als Zahl oder als etwas anderes als eine Zeichenfolge รผbergeben, erhalten Sie einen Fehler beim Kompilieren.
konvertierenToUpperCase(str:string): string
=> Dies nimmt das Argument als String und gibt einen String zurรผck. Das Gleiche gilt konvertierenToLowerCase(str: string)
: Zeichenfolge; Und konvertierenToStringBold(str: string): string
;
Da Sie in der Javascript-Datei den Objektnamen als StringChecks haben, mรผssen wir schlieรlich in der .d.ts-Datei auf dasselbe verweisen, was wie folgt geschieht:
declare var StringChecks: TestString.StringsFunc;
Verwendung des Ambient-Moduls in TypeScript
Hier ist nun die Datei test.ts, in der die Umgebungsdatei tstring.d.ts verwendet wird
Beispiel: test.ts
/// <reference path="tstring.d.ts"/>
let str1 = StringChecks.isString("Hello World");
console.log(str1);
let str2 = StringChecks.convertToUpperCase("hello world");
console.log(str2);
let str3 = StringChecks.convertToLowerCase("HELLO");
console.log(str3);
let str4 = StringChecks.convertToStringBold("Hello World");
console.log(str4);
Kompilieren TypeScript tsc test.ts zu test.js
/// <reference path="tstring.d.ts"/>
var str1 = StringChecks.isString("Hello World");
console.log(str1);
var str2 = StringChecks.convertToUpperCase("hello world");
console.log(str2);
var str3 = StringChecks.convertToLowerCase("HELLO");
console.log(str3);
var str4 = StringChecks.convertToStringBold("Hello World");
console.log(str4);
Jetzt kรถnnen Sie test.js in der HTML-Datei und auch die Bibliotheksdatei testString.js verwenden
<html>
<head>
<title>Test TypeScript Ambient</title>
<script src="testStrings.js"></script>
<script src="test.js"></script>
</head>
<body>
</body>
</html>
Dies ist die Ausgabe, die in der Konsole angezeigt wird:
true HELLO WORLD hello <b>Hello World</b>
TypeScript Geschichte
Sehen Sie wichtige Sehenswรผrdigkeiten aus der Geschichte von TypeScript:
- Nach zwei Jahren interner Entwicklung bei Microsoft. TypeScript 0.9, verรถffentlicht im Jahr 2013
- Zusรคtzliche Unterstรผtzung fรผr Generika TypeScript 1.0 wurde auf Build 2014 verรถffentlicht
- Im Juli 2014 eine neue TypeScript Compiler kam, der fรผnfmal schneller ist als die vorherige Version.
- Im Juli 2015 Unterstรผtzung fรผr ES6-Module, Namespace-Schlรผsselwort, fรผr, von Support, Dekoratoren.
- Im November 2016 wurde eine zusรคtzliche Funktion wie Schlรผssel- und Suchtypen fรผr zugeordnete Typen usw. hinzugefรผgt.
- Am 27. Mรคrz 2018 wurden bedingte Typen, der verbesserte Schlรผssel mit Schnittmengentypenunterstรผtzung in der TypeScript.
Warum TypeScript?
Hier sind wichtige Vorteile der Verwendung TypeScript
- Groรes und komplexes Projekt in JavaSkripte sind schwierig zu codieren und zu warten.
- TypeScript hilft sehr bei der Code-Organisation und beseitigt dennoch die meisten Fehler wรคhrend der Kompilierung.
- TypeScript unterstรผtzt JS-Bibliotheken und API-Dokumentation
- Es handelt sich um eine optional typisierte Skriptsprache
- TypeScript Code kann in Klartext umgewandelt werden JavaSkriptcode
- Bessere Codestrukturierung und objektorientierte Programmiertechniken
- Ermรถglicht eine bessere Tool-Unterstรผtzung fรผr die Entwicklungszeit
- Es kann die Sprache รผber die Standarddekoratoren async/await hinaus erweitern
Wer benutzt TypeScript?
Hier sind einige der hรคufigsten Anwendungen von TypeScript:
- Das Angular-Team verwendet TypeScript.
- NodeJS- und NPM-Installation
- TypeScript Installation
- Kompilieren TypeScript Code zu Javascript
- Fรผhren Sie Code mit Nodejs aus
- Ausfรผhren Javascript im Browser
- Kompilieren TypeScript Code zu Javascript mit EcmaScript-Version
- Sie kรถnnen Code, der in TypeScript zu JavaSkript mit NodeJS.
- Also mit zu arbeiten TypeScript Sie mรผssen zuerst NodeJS herunterladen und installieren.
Zusammenfassung
- TypeScript ist eine Obermenge von JavaSkript. TypeScript ist eine rein objektorientierte Programmiersprache, die Klassen, Schnittstellen usw. unterstรผtzt.
- TypeScript unterstรผtzt alle verรถffentlichten Ecmascript-Funktionen und Entwickler kรถnnen diese beim Codieren verwenden.
- Variablen werden zum Speichern von Werten verwendet. Der Wert kann eine Zeichenfolge, eine Zahl, ein boolescher Wert oder ein Ausdruck sein.
- In TypeScript, der Typ einer Variablen wird nur zu Beginn definiert und muss wรคhrend der gesamten Ausfรผhrung derselbe Typ bleiben. Jede รnderung daran fรผhrt zu einem Kompilierfehler wรคhrend der Kompilierung in JavaScript.
- Ein Array in TypeScript ist ein Datentyp, in dem Sie mehrere Werte speichern kรถnnen.
- Klasse ist eine neue Funktion, die ab ES6 hinzugefรผgt wurde. JavaEs wurde versucht, die Klassentypfunktionalitรคt mithilfe einer Funktion mit Prototypfunktionalitรคt zu skripten, um Code wiederzuverwenden.
- TypeScript unterstรผtzt รถffentliche, private und geschรผtzte Zugriffsmodifikatoren fรผr Ihre Methoden und Eigenschaften.
- Eine der Kernfunktionen von TypeScript sind Schnittstellen. Die Schnittstelle ist ein Satz definierter Regeln, die von der Entitรคt, die sie verwendet, implementiert werden mรผssen.
- Funktionen sind eine Reihe von Anweisungen, die zur Ausfรผhrung einer Aufgabe ausgefรผhrt werden.
- TypeScript Enum ist ein Objekt, das eine Sammlung zusammengehรถriger, gespeicherter Werte enthรคlt.


