Svelte dropper Type­Script: – For mye styr!

Mener JavaScript med JSDoc er bedre for de som lager rammeverk.

Sveltes beslutning om å bytte ut TypeScript med JSDoc har skapt masse debatt i utviklermiljøet. 📸: Kurt Lekanger
Sveltes beslutning om å bytte ut TypeScript med JSDoc har skapt masse debatt i utviklermiljøet. 📸: Kurt Lekanger Vis mer

– Mitt ståsted er at, typer er fantastisk, men TypeScript kan være ganske mye styr.

Det sa Svelte-skaperen Rich Harris i et intervju på YouTube-kanalen Svelte Society forrige måned, melder DevClass.

For noen dager siden dukket det opp en pull request i Svelte-repoet med tittelen "TS to JSDoc Conversion".

Dette fikk mange til å stille spørsmål ved hvorfor dette ble gjort. Og får det noen konsekvenser for de som bruker Svelte og SvelteKit? Kan vi fortsatt bruke TypeScript i prosjektene våre?

JSDoc gjør mye av det samme

TypeScript har blitt svært populært blant utviklere, ikke bare fordi sterk typing reduserer risikoen for feil – men også fordi du får en mye bedre utvikleropplevelse i kodeeditoren. Som for eksempel at du kan holde markøren over en variabel eller et funksjonsnavn og se typeinformasjon og annen relevant informasjon.

Men mye av det samme du kan gjøre med TypeScript kan også gjøres med JSDoc, selv om JSDoc først og fremst er ment som et verktøy for å dokumentasjon.

Du kan for eksempel legge til JSDoc-informasjon foran en funksjon der du beskriver både hva funksjonen gjør, hvilke parametre den tar, og hvilke typer argumentene skal ha. Når du bruker denne funksjonen andre steder i kodebasen din, vil du kunne få opp informasjon via for eksempel IntelliSense i VS Code.

Støtte for typesjekking gjennom JSDoc er innebygget i VS Code, og kan skrus på ved å legge til dette på toppen i en JavaScript-fil:

// @ts-check

Full typesikkerhet, uten ulempene

Rich Harris mener det er bedre for de som lager rammeverk å bruke JSDoc på denne måten, i stedet for å skrive hele rammeverket i TypeScript.

– Så snart du bruker en .ts-fil, så må du ha "toolingen" som støtter det... Det er alle disse friksjonspunktene når du bruker et ikke-standard språk som TypeScript som har gjort at jeg nå ikke tror det er verdt det, sa Harris i intervjuet.

I stedet har de lagt alle typedefinisjonene i JSDoc-kommentarer.

– Da får vi all typesikkerheten, men ikke noen av ulempene, siden det er bare JavaScript. Alt er i kommentarer, du kan bare kjøre koden.

Harris sier de allerede har gjort dette i SvelteKit-kodebasen, noe som har fungert veldig bra. Planen er å gjøre det samme for Svelte 4.0.

Bruk fortsatt TypeScript til egne prosjekter

Selv om Svelte og SvelteKit nå går bort fra å bruke TypeScript, betyr ikke det at ikke andre kan lage Svelte-applikasjoner og -nettsider i TypeScript.

Funksjoner eksportert fra Svelte vil fortsatt nyte godt av alle de fordelen utviklere er vant til fra TypeScript, som typesjekking, IntelliSense, inline-dokumentasjon, og så videre.

«Skiftet til JSDoc er mindre gunstig hvis du bygger en app, fordi da vil du uansett ha et byggesteg.»

Når Harris snakker om at "TypeScript ikke er verdt bryet", mener han først og fremst til å lage rammeverk med.

– Skiftet til JSDoc er mindre gunstig hvis du bygger en app, fordi da vil du uansett ha et byggesteg. Du vil optimalisere koden, du vil minimere den og pakke alt sammen. Men hvis du derimot bygger et bibliotek, da vil jeg sterkt oppfordre til å bruke JSDoc i stedet, sa Harris.