Finn ut alt om funksjonene denne siste versjonen av TypeScript introduserer.

TypeScript, Microsofts populære programmeringsspråk, fortsetter å imponere med sin siste utgivelse, TypeScript 5.1. Fullpakket med spennende nye funksjoner og forbedringer, lover denne versjonen å ta kodeopplevelsen din til en ny høyder.

Forenklet funksjonsretur og tilbehørstyper

I JavaScript, når du oppretter en funksjon og utføre den uten å møte en retursetning, returnerer den automatisk verdien udefinert.

TypeScript 5.1 har introdusert en ny funksjon som lar funksjoner som returnerer udefinert utelate return-setningen helt. Denne forbedringen forbedrer kodens lesbarhet og konsisitet.

funksjonlogMessage(beskjed: streng): udefinert{
konsoll.log (melding);
// Ingen returoppgave er nødvendig her
}

Dette eksemplet bruker funksjonen logMessage for å vise en melding på konsollen. Funksjonen returnerer imidlertid ikke eksplisitt noen verdi.

TypeScript 5.1 introduserer en ny funksjon som tillater bruk av urelaterte typer for gettere og settere, så lenge du gir eksplisitte typekommentarer.

Denne forbedringen viser seg å være svært fordelaktig i situasjoner der du trenger å håndheve forskjellige typer for å få tilgang til og endre en eiendom.

klasse Bruker {
privat _Navn: streng | null = null;

sett navn (nyttnavn: streng) {
dette._name = nyttNavn;
}

Navn(): streng {
komme tilbakedette._Navn?? 'Ukjent';
}
}

I dette eksemplet har User-klassen en privat _Navn eiendom som kan være enten en streng eller null. De Navn setter tar en streng nyttNavn og tildeler den til _Navn. Navnet getter returnerer verdien av _Navn hvis det ikke er det null, eller Ukjent hvis det er.

Dette lar deg håndheve at navneegenskapen bare kan settes med en streng, men når du får navnegenskapen, kan den enten være en streng eller Ukjent hvis det ikke er satt ennå.

Denne funksjonen muliggjør mer fleksible og uttrykksfulle typedefinisjoner som vist i eksemplet nedenfor.

grensesnitt CSSStyleRule {
// Leser alltid som en `CSSStyleDeclaration`
style(): CSSStyleDeclaration;

// Kan bare skrive en `streng` her.
sett stil (nyverdi: streng);
}

I eksemplet ovenfor har style-egenskapen en getter som returnerer en CSSStyleDeclaration og en setter som aksepterer en streng. Disse typene er ikke relatert, men TypeScript 5.1 tillater denne typen typedefinisjoner.

JSX-forbedringer

TypeScript 5.1 introduserer flere forbedringer for JSX. Den tillater nå frakoblet typesjekking mellom JSX-elementer og JSX-tagtyper, som kan være nyttig for biblioteker som redux som lar komponenter returnere mer enn bare JSX-elementer.

import * som Reagere fra"reagere";

asynkronfunksjonAsyncComponent() {
komme tilbake

Lastet </div>;
}

// Dette er nå tillatt:
la element = ;

I dette eksemplet er AsyncComponent funksjon er en asynkron funksjon som returnerer et JSX-element. TypeScript 5.1 lar deg bruke denne typen funksjon som en JSX-komponent, noe som ikke var mulig i tidligere versjoner.

TypeScript 5.1 introduserer også støtte for den nye JSX Transform introdusert i React 17. Dette lar deg bruke JSX uten å importere React.

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

funksjonKomponent() {
komme tilbake

Hei verden!</h1>;
}

// Etter
funksjonKomponent() {
komme tilbake

Hei verden!</h1>;
}

I eksemplet ovenfor returnerer Component-funksjonen et JSX-element. I TypeScript 5.1 og React 17 trenger du ikke lenger importere React for å bruke JSX.

Ytelsesøkninger og betydelige endringer i TypeScript 5.1

TypeScript 5.1 introduserer flere optimaliseringer for å forbedre ytelsen, inkludert hastighet, minne og pakkestørrelsesoptimalisering, unngå unødvendig type instansiering, negative kasussjekker for fagforenings bokstaver og reduserte anrop til skanneren for JSDoc parsing.

Her er et eksempel på å unngå unødvendig typeforekomst i objekttyper som er kjent for ikke å inneholde referanser til ytre typeparametere, og raskere kontroller for unionsliteraler.

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

funksjonSjekk(verdi: Union) {
// ...
}

I dette eksemplet kan TypeScript 5.1 raskt sjekke om en verdi er en del av Union-typen uten å måtte sjekke mot hver type i unionen.

Her er et annet eksempel:

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

funksjonoversette(punkt: Punkt, dx: Antall, dy: Antall): Punkt{
komme tilbake { x: punkt.x + dx, y: punkt.y + dy };
}

la p: Punkt = { x: 1, y: 2 };
p = oversett (p, 1, 1);

I dette eksemplet er Point-typen en objekttype som ikke inneholder noen typeparametere. Når den kaller oversettfunksjonen, kan TypeScript 5.1 unngå unødvendig type instansiering, noe som kan øke hastigheten på typesjekking betydelig.

Omfavner TypeScript 5.1

TypeScript 5.1 introduserer en rekke kraftige funksjoner og optimaliseringer som revolusjonerer JavaScript-utvikling. Fra forenklet funksjonsretur til JSX-forbedringer og ytelsesøkninger, gir TypeScript 5.1 deg mulighet til å skrive renere, mer uttrykksfull kode samtidig som du forbedrer typekontroll og generell ytelse.

Ved å omfavne TypeScript 5.1 kan du låse opp nye muligheter og løfte JavaScript-prosjektene dine til nye høyder av effektivitet og innovasjon. La TypeScript 5.1 være din inngangsport til en mer avansert og strømlinjeformet JavaScript-utviklingsopplevelse.