---
title: "Why Svelte is converting TypeScript to JSDoc"
publication: "JavaScript Weekly"
issue: 638
published_at: "2023-05-11"
canonical_url: "https://javascriptweekly.com/issues/638"
---

Plus should MS write Windows 12 in Svelte? |        

#​638 — May 11, 2023 

[Read on the Web](https://javascriptweekly.com/issues/638)  

Together with [![Frontend Masters logo\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,w_300,h_70/e_make_transparent/co_white,e_outline:5/nk0tfdvalivacz8rw7rt.png)](https://frontendmasters.com/courses/fullstack-v3/?utm_source=email&utm_medium=javascriptweekly&utm_content=fullstackv3)  

JavaScript Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/mgwtrswrzhp3ip6zve8i.jpg)](https://fly.io/blog/js-ecosystem-delightfully-wierd/)  

[The JavaScript Ecosystem is Delightfully Weird](https://fly.io/blog/js-ecosystem-delightfully-wierd/) — There are plenty of examples of [how JavaScript is weird](https://github.com/denysdovhan/wtfjs) but Sam focuses on the _why._ If you’ve been a JS developer for many years you’ll have seen it go through many phases and morph to fit its environment. Sam paints the big picture, concluding with a talk Dan Abramov gave yesterday called _“React from Another Dimension.”_ 

Sam Ruby   

[The New JS Features Coming in ECMAScript 2023](https://thenewstack.io/the-new-javascript-features-coming-in-ecmascript-2023/) — The next JavaScript update brings smaller additions familiar from other languages, but there are more significant developments waiting in the wings. 

Mary Branscombe (The New Stack)   [![\](https://copm.s3.amazonaws.com/26052c75.png)](https://frontendmasters.com/courses/fullstack-v3/?utm_source=email&utm_medium=javascriptweekly&utm_content=fullstackv3) 

[Full Stack for Front-End Engineers with Jem Young (Netflix)](https://frontendmasters.com/courses/fullstack-v3/?utm_source=email&utm_medium=javascriptweekly&utm_content=fullstackv3) — Learn what it means to become a well-rounded full-stack engineer with this hands-on video course. You’ll dive into servers, work with the command line, understand networking and security, set up continuous integration and deployment, manage databases, build containers, and more. 

Frontend Masters sponsor   

[Vue 3.3 'Rurouni Kenshin' Released](https://blog.vuejs.org/posts/vue-3-3) — Named after a [popular manga series](https://en.wikipedia.org/wiki/Rurouni_Kenshin), the latest release of Vue is focused on developer experience improvements, particular for those using TypeScript. 

Evan You   

John Komarnicki says [▶️ Vue 3.3's `defineModel` macro](https://www.youtube.com/watch?v=-v-NWHH32dw) will change the way you write your components.  

[Next.js 13.4 Released](https://nextjs.org/blog/next-13-4) — Despite the minor version bump, this is a big release for the popular React framework. The new app router and its improved approach to filesystem based routing is now offered as a _stable_ feature, with a new concept of _server actions_ being introduced in alpha as a way to mutate data on the server without needing to create an in-between API layer. 

Tim Neutkens and Sebastian Markbåge   

**⚡️ IN BRIEF:** 

- 🫢 [Svelte is converting from TypeScript to JSDoc](https://github.com/sveltejs/svelte/pull/8569) ([example](https://github.com/sveltejs/svelte/pull/8569/commits/ea4e7931e41b4606abec51c8a67e1e3c282b8de8)).. sort of. Rich Harris popped up on Hacker News to provide [some all important context](https://news.ycombinator.com/item?id=35892250) but the ultimate result will be smaller package sizes and a better experience for Svelte's maintainers.
- React now has [official 'canary' releases](https://react.dev/blog/2023/05/03/react-canaries) if you want to use newer features than in the stable releases but still be on an officially supported channel.
- Newly released [Firefox 113](https://www.mozilla.org/en-US/firefox/113.0/releasenotes/) lets you override JS files in its debugger.
- No stranger to controversy, Ruby on Rails's David Heinemeier Hansson (DHH) tweeted: _🐦 ["TypeScript sucked out much of the joy I had writing JavaScript."](https://twitter.com/dhh/status/1655076668787097607)_   

**RELEASES:** 

- [Glint 1.0](https://blog.emberjs.com/glint-1-0-released/) – TypeScript powered tooling for Glimmer / Ember templates.
- [Elementary 2.0](https://github.com/elemaudio/elementary/releases/tag/%40elemaudio%2Fcore%402.0.0) – JS/C++ library for building audio apps.  

📒 Articles & Tutorials  

[ES2023's New Array Copying Methods](https://www.sonarsource.com/blog/es2023-new-array-copying-methods-javascript/) — The newest ECMAScript spec introduces some new methods on Array that you’ll eventually find useful in your own programs. Phil gives us the tour. 

Phil Nash   

[Private Class Fields Considered Harmful](https://lea.verou.me/2023/04/private-fields-considered-harmful/) — _“As a library author, I’ve decided to avoid private class fields from now on and gradually refactor them out of my existing libraries.”_ Why? Well, that’s the interesting part.. 

Lea Verou   

▶[I'm Done with React](https://www.youtube.com/watch?v=Zt8mO_Aqzw8) — Going from least-to-most important, the reasons this developer isn’t choosing React for future projects make for interesting watching, particularly if you too are overwhelmed by upheaval in the React world. Solid is one of the alternatives he has warmed to. 

Adam Elmore   

[Constraining Language Runtimes with Deterministic Execution](https://t.mp/3ATquei) — Explore various challenges encountered while using different language runtimes to execute workflow code deterministically. 

Temporal Technologies sponsor   

[Running JavaScript in Rust with Deno](https://austinpoor.com/blog/js-in-rs) — Deno’s use of Rust makes it a natural choice if you’re building a Rust app and want to integrate a JavaScript engine. 

Austin Poor   

[Regular Expressions in JavaScript](https://www.honeybadger.io/blog/javascript-regular-expressions/) — Powerful but often misunderstood, many will benefit from this roundup of the potential regexes offer to JavaScript developers. 

Adebayo Adams   

[How to Measure Page Loading Time with the Performance API](https://www.silvestar.codes/articles/how-to-measure-page-loading-time-with-performance-api/) — The [Performance API](https://developer.mozilla.org/en-US/docs/Web/API/Performance_API) is a group of standards used to measure the performance of webapps supported in most modern browsers. 

Silvestar Bistrović   

[How to Build a JS VST or Audio Unit Plugin on macOS](https://www.chrisjmendez.com/2023/03/29/build-vst-or-audio-unit-plugin-using-javascript-basic/) — VSTs and Audio Units are both types of audio plugins for audio editing software and they're usually built in C or C++. This tutorial doesn’t dig into the audio side of things, but more the practicalities of packaging things up to get started. 

Chris Mendez   

[An Introduction to the Bun Runtime](https://www.sitepoint.com/bun-javascript-runtime-introduction/) — If you’ve not yet played with the newest entrant into the JS runtime space, this is a high level overview. 

Craig Buckler   

[2023 State of the Java Ecosystem](https://newrelic.com/resources/report/2023-state-of-the-java-ecosystem?utm_source=javascript-weekly&utm_medium=community&utm_campaign=global-fy24-q1-2023-state-of-the-java-ecosystem) 

New Relic sponsor   

[Configuring ESLint, Prettier, and TypeScript Together](https://blog.joshuakgoldberg.com/configuring-eslint-prettier-and-typescript-together/) 
Josh Goldberg   

[`DestroyRef`: Your New Angular 16 Friend](https://yon.fun/angular-destroyref/) 
Ion Prodan   

[Why Astro is My Favorite Framework](https://ryantrimble.com/blog/why-astro-is-my-favorite-framework/) 
Ryan Trimble  

🛠 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/kg3ftqkocme1xaswkqzt.jpg)](https://github.com/sindresorhus/file-type)  

[file-type 18.4: Detect the File Type of a Buffer, Uint8Array or ArrayBuffer](https://github.com/sindresorhus/file-type) — For example, give it the raw data from a PNG file, and it’ll tell you it’s a PNG file. Uses magic numbers so is targeted solely at non text-based formats. 

Sindre Sorhus   

[Learn How the Rising Trend of Malicious Packages Can Affect Your Apps](https://resources.snyk.io/malicious-packages-os?utm_campaign=aom_2023&utm_medium=paid-email&utm_source=cooperpress-javascript-weekly&utm_content=malicious-packages-os) — Keep your applications secure with Snyk’s article on the increasing number of malicious OS packages and ways to mitigate these risks. 

Snyk sponsor   

[Livefir: Build Reactive HTML Apps with Go and Alpine.js](https://livefir.fly.dev/) — Go isn’t a language that often pops up in the context of the frontend, but this is a neat integration between Go on the backend and Alpine.js up front. 

Adnaan Badr   

[JZZ.js: A Developer Friendly MIDI library](https://jazz-soft.net/doc/JZZ/) — For both browsers and Node, JZZ.js provides an abstraction over working with MIDI related concepts. There are [many examples](https://jazz-soft.net/demo/), but the easter egg in the top left is our favorite. 

Sema / Jazz-Soft   

[htmlparser2 9.0: A 'Fast and Forgiving' HTML and XML Parser](https://github.com/fb55/htmlparser2) — Consumes documents and calls callbacks, but it can generate a DOM as well. Works in both Node and browser. 

Felix Böhm   

[cRonstrue: Library to Convert `cron` Expressions into Human-Readable Form](https://github.com/bradymholt/cronstrue) — Given something like `*/5 * * * *`, it'll return _“Every 5 minutes”_. No dependencies. 

Brady Holt   

[Knip: Find Unused Files, Dependencies and Exports in TypeScript Projects](https://github.com/webpro/knip) — Being Dutch for _“snip”_ is appropriate as Knip can trim away things that aren’t being used in your project. 

Lars Kappert   

- [jsPlumb 6.1](https://github.com/jsplumb/jsplumb)
 ↳ Visual connectivity for webapps.
- [gridstack.js 8.1](https://github.com/gridstack/gridstack.js)
 ↳ Build interactive dashboards quickly.     

💻 Jobs  

[Find JavaScript Jobs with Hired](https://hired.com/join/?utm_source=newsletter&utm_medium=sponsor&utm_campaign=%28b2c%29%28l-all%29%28r-all%29%28cooper-javascriptweekly%29&utm_content=find-your-next-job) — Hired makes job hunting easy-instead of chasing recruiters, companies approach you with salary details up front. Create a free profile now. 
Hired   

[Team Lead Web Development](https://www.komoot.com/jobs/9C5B6E4C0B/team-lead-web-development) — Experienced with Node, React, and TS? Join us and lead a motivated team of devs and help grow and shape the future of our web app focused on helping millions explore the outdoors. 
Komoot   

🧑‍💻 Got a job listing to share? _[Here's how](https://booking.cooperpress.com/jobs)_.   

🤫 Don't tell Satya Nadella.. 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/vozdyrb2unavcbr1wl37.jpg)](https://win11-svelte.vercel.app/)   

[Fake Windows 11 in Svelte](https://win11-svelte.vercel.app/) — This is a cute little side project, and [the code is available too.](https://github.com/yashash-pugalia/win11-svelte) The most common complaint I’ve seen is that it’s actually _more_ responsive than the real Windows.. 😆 Be sure to check out both ‘VS Code’ and ‘Microsoft Edge’ in this environment. 

Yashash Pugalia   

🏞 Prefer Windows XP? Maybe [RebornXP](https://rebornxp.js.org/) is more for you. Complete with the classic starting up sound!        

Published by [Cooperpress](https://cooperpress.com/) and edited by [Peter Cooper](https://twitter.com/cooperx86) 

'JavaScript' is a trademark of Oracle Corporation in the US
We are not endorsed by or affiliated with Oracle. 

[Change your email address](https://javascriptweekly.com/edit_subscription/*|UID|*) or [stop getting this newsletter](https://javascriptweekly.com/leave/*|UID|*). 

© Cooper Press Ltd · Fairfield Enterprise Centre, Louth, LN11 0LS, United Kingdom
