Ta reda på allt om funktionerna som den senaste versionen av TypeScript introducerar.
TypeScript, Microsofts populära programmeringsspråk, fortsätter att imponera med sin senaste utgåva, TypeScript 5.1. Fullpackad med spännande nya funktioner och förbättringar, den här versionen lovar att ta din kodningsupplevelse till en ny höjder.
Förenklad funktionsretur och tillbehörstyper
I JavaScript, när du skapar en funktion och exekvera den utan att stöta på en retursats, returnerar den automatiskt värdet odefinierad.
TypeScript 5.1 har introducerat en ny funktion som gör att funktioner som returnerar odefinierade kan utelämna return-satsen helt och hållet. Denna förbättring förbättrar kodens läsbarhet och koncisthet.
fungeralogMessage(meddelande: sträng): odefinierad{
trösta.log (meddelande);
// Inget returutdrag behövs här
}
Detta exempel använder funktionen logMessage för att visa ett meddelande på konsolen. Funktionen returnerar dock inte uttryckligen något värde.
TypeScript 5.1 introducerar en ny funktion som tillåter användning av orelaterade typer för getters och setters, så länge du tillhandahåller explicita typkommentarer.
Denna förbättring visar sig vara mycket fördelaktig i situationer där du behöver tvinga fram olika typer för att komma åt och ändra en egenskap.
klass Användare {
privat _namn: sträng | null = null;uppsättning namn (nyttnamn: sträng) {
detta._name = nyttNamn;
}
skaffa sig namn(): sträng {
lämna tillbakadetta._namn?? 'Okänd';
}
}
I det här exemplet har klassen User en privat _namn egendom som kan vara antingen en sträng eller null. De namn setter tar ett snöre nytt namn och tilldelar den till _namn. Namnet getter returnerar värdet på _namn om det inte är det null, eller Okänd om den är.
Detta låter dig framtvinga att namnegenskapen endast kan ställas in med en sträng, men när du hämtar namnegenskapen kan den vara antingen en sträng eller Okänd om det inte har ställts in ännu.
Denna funktion möjliggör mer flexibla och uttrycksfulla typdefinitioner som visas i exemplet nedan.
gränssnitt CSSStyleRule {
// Läss alltid som en `CSSStyleDeclaration`
skaffa sig style(): CSSStyleDeclaration;
// Kan bara skriva en `sträng` här.
uppsättning stil (newValue: sträng);
}
I exemplet ovan har style-egenskapen en getter som returnerar en CSSStyleDeclaration och en setter som accepterar en sträng. Dessa typer är orelaterade, men TypeScript 5.1 tillåter denna typ av typdefinition.
JSX-förbättringar
TypeScript 5.1 introducerar flera förbättringar för JSX. Det tillåter nu frikopplad typkontroll mellan JSX-element och JSX-taggtyper, vilket kan vara användbar för bibliotek som redux som gör att komponenter kan returnera mer än bara JSX-element.
importera * som Reagera från"reagera";
asynkronfungeraAsyncComponent() {
lämna tillbakaLaddat</div>;
}
// Detta är nu tillåtet:
låta element = ;
I det här exemplet är AsyncComponent funktion är en asynkron funktion som returnerar ett JSX-element. TypeScript 5.1 låter dig använda den här typen av funktion som en JSX-komponent, vilket inte var möjligt i tidigare versioner.
TypeScript 5.1 introducerar också stöd för den nya JSX Transform som introduceras i React 17. Detta gör att du kan använda JSX utan att importera React.
// Innan
importera Reagera från"reagera";fungeraKomponent() {
lämna tillbakaHej världen!</h1>;
}
// Efter
fungeraKomponent() {
lämna tillbakaHej världen!</h1>;
}
I exemplet ovan returnerar Component-funktionen ett JSX-element. I TypeScript 5.1 och React 17 behöver du inte längre importera React för att använda JSX.
Prestandahöjningar och betydande förändringar i TypeScript 5.1
TypeScript 5.1 introducerar flera optimeringar för att förbättra prestanda, inklusive hastighets-, minnes- och paketstorleksoptimeringar, undviker onödig typinstansiering, negativa skiftlägeskontroller för fackliga bokstaver och minskade anrop till skannern för JSDoc analysera.
Här är ett exempel på hur man undviker onödig typinstansiering inom objekttyper som är kända för att inte innehålla referenser till yttre typparametrar, och snabbare kontroller av unionsliteraler.
typ Union = 'a' | 'b' | 'c';
fungerakolla upp(värde: Union) {
// ...
}
I det här exemplet kan TypeScript 5.1 snabbt kontrollera om ett värde är en del av unionstypen utan att behöva kontrollera mot varje typ i föreningen.
Här är ett annat exempel:
typ Punkt = { x: siffra, y: siffra };
fungeraÖversätt(punkt: Punkt, dx: siffra, dy: siffra): Punkt{
lämna tillbaka { x: point.x + dx, y: point.y + dy };
}
låta p: Punkt = { x: 1, y: 2 };
p = översätt (p, 1, 1);
I det här exemplet är Point-typen en objekttyp som inte innehåller några typparametrar. När den anropar översättningsfunktionen kan TypeScript 5.1 undvika onödig typinstansering, vilket avsevärt kan påskynda typkontrollen.
Omfamnar TypeScript 5.1
TypeScript 5.1 introducerar en rad kraftfulla funktioner och optimeringar som revolutionerar JavaScript-utveckling. Från förenklad funktionsåtergång till JSX-förbättringar och prestandahöjningar, TypeScript 5.1 ger dig möjlighet att skriva renare, mer uttrycksfull kod samtidigt som du förbättrar typkontroll och övergripande prestanda.
Genom att anamma TypeScript 5.1 kan du låsa upp nya möjligheter och lyfta dina JavaScript-projekt till nya höjder av effektivitet och innovation. Låt TypeScript 5.1 vara din inkörsport till en mer avancerad och strömlinjeformad JavaScript-utvecklingsupplevelse.