---
title: "How TypeScript 4.9 satisfies"
publication: "JavaScript Weekly"
issue: 608
published_at: "2022-09-30"
canonical_url: "https://javascriptweekly.com/issues/608"
---

Plus writing composable SQL, making phones vibrate, and Billboard.js gets friendly with React. |        

#​608 — September 30, 2022 

[Unsubscribe](https://javascriptweekly.com/leave/*|UID|*)|[Read on the Web](https://javascriptweekly.com/issues/608)   

JavaScript Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/nltxvtv3nlpgwhihijqc.jpg)](https://almanac.httparchive.org/en/2022/javascript)  

[The Web Almanac 2022's Take on the State of JavaScript in the Real World](https://almanac.httparchive.org/en/2022/javascript) — What’s better: a survey, or real world usage data from 8 million sites? If you prefer the latter, this is for you. [_The Web Almanac_](https://almanac.httparchive.org/en/2022/) is an annual ‘state of the web’ report into what technologies are being used online and amongst the [over 20 chapters of insights](https://almanac.httparchive.org/en/2022/table-of-contents) is a JavaScript-specific chapter. Some highlights: 

- More JavaScript is going over the wire than ever before. 1.3MB for a page only puts you at the 90th percentile(!) About half of it goes unused too..
- 77% of mobile pages have render-blocking scripts in `<head>`
- Dynamic `import` is barely seen – about 0.3-0.4% of pages.
- [Web Workers](https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Using_web_workers) are used on 12% of pages.
- Of the 1,000 top sites, 17% use webpack, ~1.5% for Parcel.
- _Psst.. jQuery is still used all over the place.._ 

Jeremy Wagner and the HTTP Archive   [![\](https://copm.s3.amazonaws.com/af731b77.png)](https://www.courier.com/blog/building-a-slack-integration/?utm_campaign=demand-gen&utm_source=email&utm_medium=javascript-weekly-9-30&utm_content=slack-integration-blog) 

[Build a Slack Integration in a Few Lines of JavaScript](https://www.courier.com/blog/building-a-slack-integration/?utm_campaign=demand-gen&utm_source=email&utm_medium=javascript-weekly-9-30&utm_content=slack-integration-blog) — Don’t sweat notifications on any channel. Slack? Push? SMS? Email? Do it all with consistent formatting and logs that anyone can read that are easy to audit. 

Courier sponsor   

[Announcing TypeScript 4.9 Beta](https://devblogs.microsoft.com/typescript/announcing-typescript-4-9-beta/) — This is a very _satisfying_ update that introduces the `satisfies` operator for when you want to validate a type of an expression matches some type but without changing the actual resulting type. The `in` operator also becomes more powerful when narrowing types with unlisted properties. 

Daniel Rosenwasser (Microsoft)   

[The 'New Wave' of JavaScript Web Frameworks](https://frontendmastery.com/posts/the-new-wave-of-javascript-web-frameworks/) — A few months ago he covered [the new wave of React state management](https://frontendmastery.com/posts/the-new-wave-of-react-state-management/) and now Rem is back trying to _“make sense of the proliferation of new Javascript web frameworks.”_ As are we all. Vue, Svelte, Solid, Remix, Astro and Qwik all make an appearance here. No Lit or Web Components though. 

Rem   

**IN BRIEF:** 

- Did you know VS Code has [a 'timeline' view that lets you go back and forth](https://austingil.com/vs-code-timeline-restores-work-git-cant/) through states of your files?
- Cloudflare has unveiled [Turnstile,](https://blog.cloudflare.com/turnstile-private-captcha-alternative/) its take on an invisible CAPTCHA-like service for protecting webapps. How does it work? [JavaScript-based challenges,](https://www.theregister.com/2022/09/28/cloudflares_new_captcha_killer_enters/) explains _The Register._
- On the topic of Cloudflare, it has [released `workerd`](https://blog.cloudflare.com/workerd-open-source-workers-runtime/), an open source version of its JavaScript-oriented FaaS _Workers_ platform.
- Node.js has had [a swathe of security releases.](https://nodejs.org/en/blog/vulnerability/september-2022-security-releases/)
- _AWS App Runner_, AWS's _'throw an app at us and we'll run it'_ service, now [supports Node.js 16](https://aws.amazon.com/about-aws/whats-new/2022/09/aws-app-runner-supports-node-js-managed-runtime/).   

**RELEASES:** 

- [Electron 21](https://www.electronjs.org/blog/electron-21-0)
- [Node.js 18.10.0 (Current)](https://nodejs.org/en/blog/release/v18.10.0/)
- [Astro 1.4](https://astro.build/blog/astro-140/)
- [Neutralino.js 4.8](https://github.com/neutralinojs/neutralinojs/releases/tag/v4.8.0)
 ↳ Lightweight cross-platform desktop app framework.
- [Boa 0.16](https://boa-dev.github.io/posts/2022-09-25-boa-release-16/)
 ↳ JS lexer, parser and compiler written in Rust.  

📒 Articles & Tutorials  

[Use .NET From Any JavaScript App in .NET 7](https://devblogs.microsoft.com/dotnet/use-net-7-from-any-javascript-app-in-net-7/) — A showcase of the JavaScript to .NET interop by way of a port of the famous [TodoMVC](https://todomvc.com/) to .NET running via WebAssembly. [Blazor](https://dotnet.microsoft.com/en-us/apps/aspnet/web-apps/blazor) is the most commonly associated framework with .NET and C# in the browser, but the support works independently of Blazor too. 

Pavel Šavara (Microsoft)   

[Writing Composable SQL using JavaScript](https://contra.com/p/AqZWWoUB-writing-composable-sql-using-java-script) — There are many approaches to working with SQL databases and the author prefers plain SQL and [Slonik](https://github.com/gajus/slonik). If you prefer something more abstract, of course, [Knex.js](https://knexjs.org/guide/query-builder.html) is still an option. 

Gajus Kuizinas   

[How to Monitor a Next.js Application](https://newrelic.com/blog/how-to-relic/nextjs-monitor-application-data?utm_source=javascript-weekly&utm_medium=community&utm_campaign=global-fy23-q2-nextjs-monitor-application-data) — Learn how to monitor both the server side and client slide of a Next.js application, including adding logs in context. 

New Relic sponsor   

[Building an Accessible Select Component in React](https://medium.com/lego-engineering/building-accessible-select-component-in-react-b61dbdf5122f) — A step-by-step (or should we say _brick-by-brick?_) tutorial on how to build a select component specifically with [accessibility](https://www.w3.org/standards/webdesign/accessibility) in mind, a topic an international business like LEGO has at its heart. 

Kacper Kula (Lego)   

[A Quick Guide to Phone Vibration with JavaScript](https://blog.petefowler.dev/a-quick-guide-to-cell-phone-vibration-with-javascript) — Learn how to do this, then _don’t_ do it unless you really, really, really have to.. please? 😁 

Pete Fowler   

[Testing React Apps with Cypress: An In-Depth Guide for Beginners](https://profy.dev/article/cypress-react) 
Johannes Kettmann   

▶[An Introduction to Pinia, Vue's Recommended Store Library](https://www.youtube.com/watch?v=gwcca_zd4IE) 
John Komarnicki   

[Watch Out What You Expose with Angular Interceptors](https://timdeschryver.dev/blog/watch-out-what-you-expose-with-angular-interceptors) 
Tim Deschryver  

🛠 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/ovddqnizurcupdqou6i4.jpg)](https://netil.medium.com/billboard-js-3-6-release-official-react-wrapper-new-enhancements-2dbf1ffc4d1c)  

[Billboard.js 3.6: D3.js-Based JavaScript Chart Library](https://netil.medium.com/billboard-js-3-6-release-official-react-wrapper-new-enhancements-2dbf1ffc4d1c) — The hugely powerful and popular chat library now has an official React wrapper, a new ‘linear gradient’ bar chart option, and . [Demos](https://naver.github.io/billboard.js/demo/) and [GitHub repo](https://github.com/naver/billboard.js). 

Jae Sung Park   

[Liqe: Lightweight Lucene-like Parser and Search Engine](https://github.com/gajus/liqe) — Lets you use Lucene-style [search query syntax](http://www.lucenetutorial.com/lucene-query-syntax.html) to query or test things you already have in JavaScript objects, e.g. `filter(parse('height:>170'), people);` 

Gajus Kuizinas   

[Wallaby.js: 15x Faster JavaScript Testing, Now with Support for Vitest](https://wallabyjs.com/?utm_source=cooperpress&utm_medium=javascriptweekly&utm_content=javascriptweekly) — Wallaby runs tests as you type, with real-time runtime values, errors and coverage displayed next to your code. 

Wallaby.js sponsor   

[create-t3-app: Interactive CLI to Quickly Set Up an Opinionated, Full-Stack, Type-Safe Next.js Project](https://github.com/t3-oss/create-t3-app) — There’s even a [10-minute screencast](https://www.youtube.com/watch?v=PbjHxIuHduU) from _Theo - ping․gg_ showing off how to use it. 

T3 Open Source   

[Glide.js 3.6: A Dependency-Free Slider and Carousel Control](https://glidejs.com/) — _“Designed to slide. No less, no more”_ says the creator. MIT licensed and mature. 

Jędrzej Chałubek   

[Preview.js: Fast Component Previews in Your IDE](https://previewjs.com/) — This extension will automatically generate valid props in your components in the preview, has support for CSS-in-JS, and works offline. Available for VS Code and IntelliJ/WebStorm, and supports Solid and Vue components too. 

Zenc Labs   

🅰️ ['Photoshop Export Layers to Files Fast'](https://github.com/antipalindrome/Photoshop-Export-Layers-to-Files-Fast) — Did you know you can [script Adobe Photoshop](https://github.com/Adobe-CEP/CEP-Resources/blob/master/Documentation/Product%20specific%20Documentation/Photoshop%20Scripting/photoshop-cc-javascript-ref-2019.pdf) using JavaScript? It’s quite powerful, but I found it hard to find good examples to learn from when I played with it – so this project is very welcome. 

Hanna W   

[Ezno: An Experimental JavaScript Compiler](https://kaleidawave.github.io/posts/introducing-ezno/) — The latest in a long line of JavaScript compilation experiments – and we’re all here for it. This post explains the philosophy and reasoning and why type checking is at the heart of it: _“You can think of it as an extension to TSC, similar ideas but taken further.”_ 

Ben X   

[Code Capsules: The Simplest Way to Deploy Your Code](https://codecapsules.io) 

Code Capsules sponsor   

[textlint: A Pluggable Linting Tool for Text and Markdown](https://textlint.github.io/) — Imagine ESLint but for natural language and punctuation. Markdown and text are supported out of the box, but other formats can be added (e.g. HTML). There’s an [online playground](https://textlint.github.io/playground/) if you want to try it out. 

Textlint Team    

**⚡️ OTHER QUICK RELEASES:** 

- [react-number-format 5.0](https://github.com/s-yadav/react-number-format/releases/tag/v5.0.0)
 ↳ Component to format numbers in an input or as text.
- [jest-native 5.0](https://github.com/testing-library/jest-native)
 ↳ Jest matchers to test the state of React Native apps.
- [Pogo 0.6](https://github.com/sholladay/pogo)
 ↳ Server framework for Deno.
- [Eruption](https://github.com/eruptionjs/core)
 ↳ ‘Next generation’ boilerplate for React/TypeScript, built on top of [Vite](https://vitejs.dev).     

💻 Jobs  

[Senior JavaScript Developer (Remote or Warsaw)](https://cksource.com/careers/?utm_source=jsweekly&utm_medium=email&utm_campaign=sep30#senior-javascript-developer) — Join the CKEditor team to develop an Open Source project used by millions of users around the world 🚀and realize your true potential. 
CKEditor   

[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) — Create a profile on Hired to connect with hiring managers at growing startups and Fortune 500 companies. It's free for job-seekers. 
Hired      

**🤖 Well, okay..** 

You've got some semi-structured data written in Markdown and want to convert it to JSON. What do you do? [▶️ Get OpenAI's GPT-3 machine learning model to do it](https://www.youtube.com/watch?v=koEzP2ZE7fM) of course..(!) 

It continues to amaze me the things this new technology can pull off. Maybe I'll see if it can help me with my crossword later :-) 

_– Peter Cooper, your editor_         

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
