⊗tsSpGnPTL 36 of 37 menu

Verwendung von Typparametern in Einschränkungen von Generics in TypeScript

TypeScript bietet auch die Möglichkeit, einen Typparameter zu deklarieren, der durch einen anderen Typparameter eingeschränkt wird. Dies ist notwendig, wenn Eigenschaften von einem Objekt in ein anderes kopiert werden müssen, während gleichzeitig sichergestellt wird, dass wir keine überflüssigen Eigenschaften übergeben.

Betrachten wir das folgende Beispiel. Kehren wir zur Funktion myFunc zurück, die die Länge einer Variable bestimmt:

function myFunc <T> (data: T): T { console.log(data.length); // Fehler return data; }

Nun möchten wir jedoch, dass diese Funktion nur mit Typen arbeitet, die eine Eigenschaft length besitzen. Dazu erstellen wir ein Interface ILength, dem wir die Eigenschaft length vom Typ Zahl zuweisen:

interface ILength { length: number; }

Als setzen wir in unserer Funktion einen generischen Typ fest, der von ILength über das Schlüsselwort extends erbt:

function myFunc <T extends ILength> (data: T): T { console.log(data.length); return data; }

So sieht unser vollständiger Code aus:

interface ILength { length: number; } function myFunc <T extends ILength> (data: T): T { console.log(data.length); return data; }

Lassen Sie uns die Funktionsweise unserer Funktion überprüfen und die Länge eines Strings ermitteln:

console.log(myFunc('abcde'));

Ergebnis des ausgeführten Codes:

5 'abcde'

Und nun übergeben wir ein Array als Parameter:

console.log(myFunc(['a', 'b', 'c']));

Ergebnis des ausgeführten Codes:

3 [ 'a', 'b', 'c' ]
Deutsch
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wir verwenden Cookies für den Betrieb der Website, Analyse und Personalisierung. Die Datenverarbeitung erfolgt gemäß der Datenschutzerklärung.
alle akzeptieren anpassen ablehnen