⊗tsSpGnIms 35 of 37 menu

Begränsningar av generics i TypeScript

I en av de tidigare lektionerna skapade vi en funktion av generisk typ som skulle skriva ut längden på parametern som skickades till den. Men vid kompilering fick vi ett fel, eftersom inte alla typer kan ha en längd:

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

I det fallet löste vi situationen genom att ändra den generiska typen till en typ av generisk array. Men i TypeScript finns det en möjlighet att skapa begränsningar för generics. För att göra detta skriver vi, i vinkelparenteserna, efter variabeln T, nyckelordet extends. Efter det skriver vi inom klammerparenteser en ny variabel str av strängtyp. Resten av funktionskoden förblir oförändrad:

function myFunc <T extends {str: string}> (data: T): void { console.log(data.str.length); }

Det visar sig att den generiska typen ärver typen av variabeln str, specificerad i klammerparenteserna. Låt oss nu kontrollera vår funktions arbete och skapa en variabel myStr, som refererar till typen str, och tilldela den ett värde inom klammerparenteser:

let myStr: {str: string} = {str: 'abcde'};

Låt oss anropa funktionen myFunc, utan att glömma att återigen specificera dess typ och skicka variabeln myStr som en parameter:

myFunc <{str: string}> (myStr);

Baserat på exemplet som granskades i lektionen, skapa en funktion för att hitta längden av en numerisk array.

Svenska
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi använder kakor för webbplatsens funktion, analys och personalisering. Behandling av data sker i enlighet med Integritetspolicyn.
acceptera alla anpassa avvisa