TypeScript 5.6 er ute – se hvordan den finner tabbene dine

TypeScript 5.6 er ute av beta, med bedre sjekking av hvorvidt noe er nullish eller truthy.

TypeScript vil nå flagge flere mulige kodetabber enn før. 📸: NTB / Shutterstock
TypeScript vil nå flagge flere mulige kodetabber enn før. 📸: NTB / Shutterstock Vis mer

Microsoft har lansert den endelige versjonen av TypeScript 5.6, som har vært i beta siden slutten av juli.

Den nye TypeScript-versjonen har fått en masse nyheter, blant annet kan den nå forstå logiske brister i koden din, for eksempel forårsaket av feilplasserte parenteser.

Feil som TypeScript tidligere ville godta, fordi det er gyldig JavaScript.

Varsler om kodetabber

TypeScript 5.6 har fått forbedret sjekking av hvorvidt noe er nullish eller truthy.

Det betyr at hvis du for eksempel ved en feil skriver => ("arrow function") i stedet for >= (større enn eller er lik), så vil TypeScript nå varsle deg:

if (x => 0) {
//  ~~~~~~
// error: This kind of expression is always truthy.
}

Det samme gjelder om du bruker nullish-operatoren (??) som her:

function isValid(value: string | number, options: any, strictness: "strict" | "loose") {
    if (strictness === "loose") {
        value = +value
    }
    return value < options.max ?? 100;
}

Det som kommer til høyre for ?? vil aldri nås, siden det på venstre side aldri er "nullish". JavaScript leser koden som (value < options.max) ?? 100, mens det du egentlig vil ha er value < (options.max ?? 100).

I TypeScript 5.6 blir du varslet om tabben:


return value < options.max ?? 100;
//     ~~~~~~~~~~~~~~~~~~~
// error: Right operand of ?? is unreachable because the left operand is never nullish.

Microsoft viser i lanseringsbloggposten til flere slike eksempler der koden åpenbart ikke gjør det utvikleren hadde til hensikt å gjøre, men hvor koden likevel er gyldig JavaScript. Tidligere ville TypeScript bare akseptere koden uten noen videre protester.

– Men med litt eksperimentering, fant vi ut at mange bugs kunne fanges opp ved å flagge mistenkelige eksempler som de ovenfor. I TypeScript 5.6 vil kompilatoren nå vise feil når den syntaktisk kan avgjøre at en truthy eller nullish-sjekk alltid vil evalueres på en bestemt måte, skriver Microsoft.

Kjappere redigering av store filer

En annen nyhet i TypeScript 5.6 er såkalt "Region-Prioritized Diagnostics". Kort fortalt handler det om TypeScript Language Service, som sørger for å analysere koden du ser i editoren, og levere blant annet feilmeldinger og forslag til editoren.

Tidligere måtte TypeScript sjekke hele filen.

– Som oftest går dette fint, men i ekstremt store filer kan det føre til en forsinkelse. Det kan være frustrerende fordi det å rette en skrivefeil bør føles som en rask operasjon, men kan ta flere sekunder i en stor nok fil, skriver Microsoft.

Med den nye Region-Prioritized Diagnostics-funksjonaliteten i TypeScript 5.6 kan editoren (som VS Code) gi beskjed til TypeScript om hvilke deler av koden som er relevant – typisk den delen av filen som for øyeblikket er synlig for brukeren. Og så kan TypeScript gi to sett med diagnostikkdata – en for den valgte regionen og en for hele filen.

– Dette gjør at redigering føles mye mer responsiv i store filer, slik at du ikke trenger å vente så lenge på at disse røde understrekingene skal dukke opp.

Du kan sjekke ut alle nyhetene her.