#502 — August 21, 2020
JavaScript Weekly
TypeScript 4.0 Released — The latest major version of TypeScript, the increasingly popular superset of JavaScript that adds optional static typing, is here. No major breaking changes, but a laundry list of tweaks and smaller new features, including:
- variadic tuple types
- editor and editor integration improvements
- labeled tuple elements
- short circuiting assignment operators (e.g.
a ||= b) - the new TypeScript web site!
Daniel Rosenwasser and the TypeScript Team
Metaprogramming with Proxies — Dr. Axel, the author of Deep JavaScript, keeps releasing extra chapters of his book for free online, and this one goes as deep into the topic of object proxies as you could ever hope. Do you need to know all of this? No. Am I glad the knowledge exists if I ever need to know? Yes!
Dr. Axel Rauschmayer
The Definitive Introduction to Svelte with Rich Harris — Learn how the Svelte framework works, write svelte components, and take a tour through the entire Svelte API in this detailed video course.
Frontend Masters sponsor
npm v7 Now in Beta — Isaac is back bearing good news: there’s a new major beta version of npm. Run npm i -g npm@next-7 to try it now, but he notes it’s "a big one" and there are rough edges and breaking changes ahead. Trouble-free improvements are promised for most users, but this post digs into the changes.
Isaac Z. Schlueter
ts-migrate: A Tool for Migrating to TypeScript at Scale — Learn about how Airbnb used codemods to accelerate migration from JavaScript to TypeScript and how their new ts-migrate tooling (GitHub repo) can help with the process.
Sergii Rudenko
⚡️ Quick bytes:
- Want to do some fun coding this weekend? The latest Js13kGames competition began last week and runs till September 13.
- Fancy having an Angular theme for your Slack? The Angular Twitter account has you covered.
- The final release of Vue 3.0 remains tantalizingly close with the sixth release candidate just being released.
- If you're using AngularJS (yes, the original one) its LTS (Long Term Support) period was extended to December 31, 2021 due to COVID-19.
- A neat JS 'sketch' of how mark and sweep garbage collection works.
💻 Jobs
React JS Developer (Remote) — 13 million people and counting plan outdoor hiking and cycling routes with our apps. If you are smart and talented React Dev, join us to inspire more people to explore more of the great outdoors.
Komoot
JavaScript Developer at X-Team (Remote) — Join the most energizing community for developers and work on projects for Riot Games, FOX, Sony, Coinbase, and more.
X-Team
Get Tech Interviews This Week — Create a profile on Vettery to connect with hiring managers at startups and Fortune 500 companies. It's free for job-seekers.
Vettery
📚 Tutorials, Opinions and Stories
▶ Let's Build a Multiplayer Battleship Game — A three part screencast series (by three different developers) that really digs deep into building a complete multiplayer game on both the front and back end. You’d need to commit some hours to getting through all of this, but it’s a neat collaboration and might inspire you to take part in Js13kGames!
Ania Kubów, Jesse Hall, and Kyle Cook
Build a Confirmation Modal in React with State Machines — React confirmation modals can be tricky, with useEffect and keeping track of shown/hidden, loading/not, and errors. State machines make it somewhat easier.
Dave Ceddia
Stream Chat API & JavaScript SDK for Custom Chat Apps — Build real-time chat in less time. Rapidly ship in-app messaging with our highly reliable chat infrastructure.
Stream sponsor
Modern Ways of End-to-End Testing with Cypress — v5.0 of the popular testing system has just come out but this post gently demonstrates what end-to-end testing is, how it relates to other forms of testing, and how to write your first Cypress powered tests for a web app.
Zubair Ahmed
Understanding Destructuring, Rest Parameters, and Spread Syntax — Tania’s tutorial on understanding generators was super popular with you, so you might like this similarly deep but accessible dive into other handy features ES6/ES2015 brought us.
Tania Rascia
▶ An Overview of Higher Order Functions in JavaScript — A 10 minute screencast covering one aspect of functional programming in JavaScript.
Brodey Newman
An In-Depth Explanation of Promise.all and Comparison With Promise.allSettled — Covers both in a very gentle way – aimed at beginners.
Mateusz Podlasin
Decreasing Bundle Sizes with ES Modules in Angular 10
Wijmo, by GrapeCity, Inc. sponsor
▶ React 17’s Best New Feature: Gradual Upgrades — React 17 boasts ‘no new features’, but this isn’t entirely true – what’s new is just more subtle and will still benefit you.
Harry Wolff
Six Angular Security Best Practices
Liran Tal and Natalia Venditto
🔧 Code & Tools
Cypress 5.0: Fast and Reliable Testing for Anything That Runs in a Browser — v5.0 adds support for test retries and requires Node 10+. There’s also a migration guide if you’re coming from an earlier version.
Cypress.io
Embla: An Extensible Low Level Carousel for the Web — We first came across this over a year ago, but this bare-bones carousel option is still seeing updates and remains a decent dependency-free option. Demos here.
David Cetinkaya
A Much Faster Way to Debug Code Than with Breakpoints or console.log — Wallaby catches errors in your tests and code and displays them right in your editor as you type, making your development feedback loop more productive.
Wallaby.js sponsor
BootBot: A Facebook Messenger Bot Framework — Want to create bots that work on Facebook Messenger? BootBot gives you a modular foundation, the ability to subscribe to message events, helpers to send all supported message types, etc. See some sample code to see how easy it is.
Maxi Ferreira
Elder.js: A Svelte-Focused Framework and Static Site Generator — An opinionated static site generator and web framework for Svelte built with SEO in mind.
Elder.js
ImmortalDB: A Resilient Key-Value Store for the Browser — Data is redundantly stored in numerous places like in cookies, IndexedDB, LocalStorage, and SessionStorage, and self heals as needed. v1.1 just came out.
Ansgar Grunseid