Neste store TypeScript-versjon er ute i beta - dette er nytt

TypeScript 5.0 er raskere og har fått støtte for "decorators".

Versjon 5.0 av TypeScript har blitt raskere og fått støtte for en masse ny funksjonalitet. 📸: <a href="https://unsplash.com/@christinhumephoto?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Christin Hume</a> / <a href="https://unsplash.com/s/photos/laptop-developer?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Unsplash</a>
Versjon 5.0 av TypeScript har blitt raskere og fått støtte for en masse ny funksjonalitet. 📸: Christin Hume / Unsplash Vis mer

Ifølge State of JavaScript 2022 har bruken av TypeScript mer enn tredoblet seg de siste seks årene, og 34 prosent av de spurte i undersøkelsen sier nå at de bruker dette programmeringsspråket i sine prosjekter.

Nå er betaversjonen av TypeScript 5.0 klar, skriver Microsoft i et blogginnlegg.

For de som ikke måtte kjenne til TypeScript fra før:

  • TypeScript er en sterkt typet variant av JavaScript.
  • Den er kompatibel med JavaScript, slik at du kan ta det gradvis i bruk og selv velge i hvor stor grad du ønsker å definere typer i koden din eller ikke.
  • TypeScript-kode blir til slutt konvertert til standard JavaScript som kan kjøre overalt hvor JavaScript kan kjøres.

Den nye versjonen av TypeScript kan tas i bruk ved å kjøre kommandoen `npm install typescript@beta` eller via NuGet.

«De fleste vil se forbedringer på 10 – 20 prosent i tiden det tar å bygge et TypeScript-prosjekt.»

Støtte for decorators

En av de største nyhetene i versjon 5.0 er støtte for decorators, en kommende ECMAScript-funksjon som nå er i trinn 3 i TC39-komitéen – det vil si siste trinn før den blir innlemmet i den offisielle standarden.

Decorators gjør det mulig å legge til ny funksjonalitet til klasser, på en gjenbrukbar måte – og uten å påvirke koden i den originale klassen.

Decorators kan brukes på blant annet metoder i en klasse, for eksempel som i dette eksempelet fra Microsoft-bloggen der man har laget en decorator `@loggedMethod`som legger til ekstra logging for debuggingformål til metoden `greet()`:

class Person {
    name: string;
    constructor(name: string) {
        this.name = name;
    }

    @loggedMethod
    greet() {
        console.log(`Hello, my name is ${this.name}.`);
    }
}

const p = new Person("Ray");
p.greet();

// Output:
//
//   LOG: Entering method.
//   Hello, my name is Ray.
//   LOG: Exiting method.

I eksempelet trenger man ikke å gjøre noen endringer i greet()-metoden, man bare "dekorerer" den for å gi den ekstra funksjonalitet.

TypeScript har tidligere hatt eksperimentell for decorators, men nå er støtten i tråd med den siste ECMAScript-versjonen.

Raskere og bedre

TypeScript 5.0 har også en rekke andre nyheter, som du kan lese mer om i Microsofts blogginnlegg.

I tillegg til endringer og tillegg til selve språket, har Microsoft gjort en masse for å gjøre TypeScript raskere. Dette har de fått til blant annet ved å begynne å bruke modules i stedet for namespaces, slik at man kan ta i bruk mer moderne byggeverktøy. I tillegg er en del gammel kode fjernet, noe som har redusert størrelsen til TypeScript ganske mye.

Sammenlignet med versjon 4.9 skal byggetiden for større prosjekter ha blitt redusert betraktelig. I Microsofts egne tester tok det for eksempel 19 prosent kortere tid å bygge VS Code fra kildekoden.

Microsoft skriver at de forventer at de fleste vil se forbedringer på 10 – 20 prosent i tiden det tar å bygge et TypeScript-prosjekt.