#502 — August 21, 2020

Unsubscribe  |  Read on the Web

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:

💻 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 UpgradesReact 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 Browserv5.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