Find ud af alt om de funktioner, som denne seneste version af TypeScript introducerer.

TypeScript, Microsofts populære programmeringssprog, fortsætter med at imponere med sin seneste udgivelse, TypeScript 5.1. Spækket med spændende nye funktioner og forbedringer lover denne version at tage din kodningsoplevelse til en ny højder.

Forenklet funktionsretur og tilbehørstyper

I JavaScript, når du opretter en funktion og udføre den uden at støde på en return-sætning, returnerer den automatisk værdien udefineret.

TypeScript 5.1 har introduceret en ny funktion, der gør det muligt for funktioner, der returnerer udefineret, at udelade return-sætningen helt. Denne forbedring forbedrer kodelæsbarhed og kortfattethed.

fungerelogMessage(besked: snor): udefineret{
konsol.log (meddelelse);
// Ingen returerklæring nødvendig her
}

Dette eksempel bruger funktionen logMessage for at vise en meddelelse på konsollen. Funktionen returnerer dog ikke eksplicit nogen værdi.

TypeScript 5.1 introducerer en ny funktion, der tillader brugen af ​​ikke-relaterede typer for gettere og sættere, så længe du giver eksplicitte typeannoteringer.

instagram viewer

Denne forbedring viser sig at være yderst fordelagtig i situationer, hvor du skal håndhæve forskellige typer for at få adgang til og ændre en ejendom.

klasse Bruger {
privat _navn: snor | nul = nul;

sæt navn (nytNavn: snor) {
det her._name = nytNavn;
}

navn(): snor {
Vend tilbagedet her._navn?? 'Ukendt';
}
}

I dette eksempel har brugerklassen en privat _navn ejendom, der kan være enten en snor eller nul. Det navn setter tager en snor nyt Navn og tildeler det til _navn. Navnet getter returnerer værdien af _navn hvis det ikke er nul, eller Ukendt hvis det er.

Dette giver dig mulighed for at håndhæve, at navnegenskaben kun kan indstilles med en streng, men når du henter navnegenskaben, kan den enten være en streng eller Ukendt hvis den ikke er indstillet endnu.

Denne funktion muliggør mere fleksible og udtryksfulde typedefinitioner som vist i eksemplet nedenfor.

interface CSSStyleRule {
// Læser altid som en `CSSStyleDeclaration`
style(): CSSStyleDeclaration;

// Kan kun skrive en `streng` her.
sæt stil (nyVærdi: snor);
}

I eksemplet ovenfor har stilegenskaben en getter, der returnerer en CSSStyleDeclaration og en setter, der accepterer en streng. Disse typer er ikke relaterede, men TypeScript 5.1 tillader denne type typedefinition.

JSX-forbedringer

TypeScript 5.1 introducerer flere forbedringer til JSX. Det tillader nu afkoblet typekontrol mellem JSX-elementer og JSX-tagtyper, hvilket kan være nyttigt til biblioteker som redux der tillader komponenter at returnere mere end blot JSX-elementer.

importere * som Reagere fra"reagere";

asynkronfungereAsyncComponent() {
Vend tilbage

Indlæst</div>;
}

// Dette er nu tilladt:
lade element = ;

I dette eksempel er AsyncComponent funktion er en asynkron funktion, der returnerer et JSX-element. TypeScript 5.1 lader dig bruge denne form for funktion som en JSX-komponent, hvilket ikke var muligt i tidligere versioner.

TypeScript 5.1 introducerer også understøttelse af den nye JSX Transform introduceret i React 17. Dette giver dig mulighed for at bruge JSX uden at importere React.

// Før
importere Reagere fra"reagere";

fungereKomponent() {
Vend tilbage

Hej verden!</h1>;
}

// Efter
fungereKomponent() {
Vend tilbage

Hej verden!</h1>;
}

I eksemplet ovenfor returnerer komponentfunktionen et JSX-element. I TypeScript 5.1 og React 17 behøver du ikke længere importere React for at bruge JSX.

Ydeevneforøgelser og væsentlige ændringer i TypeScript 5.1

TypeScript 5.1 introducerer adskillige optimeringer for at forbedre ydeevnen, herunder hastigheds-, hukommelses- og pakkestørrelsesoptimeringer, undgår unødvendig type instansiering, negative tjek af store bogstaver for fagforeningsbogstaver og reducerede opkald til scanneren for JSDoc parsing.

Her er et eksempel på at undgå unødvendig typeforekomst inden for objekttyper, der vides ikke at indeholde referencer til ydre typeparametre, og hurtigere kontrol for foreningsliteraler.

type Union = 'en' | 'b' | 'c';

fungerekontrollere(værdi: Union) {
// ...
}

I dette eksempel kan TypeScript 5.1 hurtigt kontrollere, om en værdi er en del af Union-typen uden at skulle tjekke mod hver type i unionen.

Her er et andet eksempel:

type Punkt = { x: nummer, y: nummer };

fungereOversætte(punkt: Punkt, dx: nummer, D y: nummer): Punkt{
Vend tilbage { x: punkt.x + dx, y: punkt.y + dy };
}

lade p: Punkt = { x: 1, y: 2 };
p = oversæt (p, 1, 1);

I dette eksempel er punkttypen en objekttype, der ikke indeholder nogen typeparametre. Når den kalder oversættelsesfunktionen, kan TypeScript 5.1 undgå unødvendig typeforekomst, hvilket kan fremskynde typekontrol markant.

Omfavner TypeScript 5.1

TypeScript 5.1 introducerer en række kraftfulde funktioner og optimeringer, der revolutionerer JavaScript-udvikling. Fra forenklet funktionsretur til JSX-forbedringer og ydeevneforøgelse, giver TypeScript 5.1 dig mulighed for at skrive renere, mere udtryksfuld kode, samtidig med at typekontrol og overordnet ydeevne forbedres.

Ved at omfavne TypeScript 5.1 kan du låse op for nye muligheder og løfte dine JavaScript-projekter til nye højder af effektivitet og innovation. Lad TypeScript 5.1 være din indgang til en mere avanceret og strømlinet JavaScript-udviklingsoplevelse.