.all()
, .race()
, .allSettled()
In this blog post, we take a look at three static methods of Promise
:
Promise.all()
and Promise.race()
which JavaScript has had since ECMAScript 6 when Promises were added to the language.Promise.allSettled()
which recently advanced to stage 4 and will therefore be part of ECMAScript 2020.This blog post describes the ECMAScript proposal “Optional chaining” by Gabriel Isenberg, Claude Pache, and Dustin Savery.
In this blog post, we look at private methods and private accessors (getters and setters) for JavaScript classes. They are a new kind of class member that can’t be accessed outside the body of their class. To understand this post, you should be familiar with private class fields.
This feature is the subject of the ECMAScript proposal “Private methods and getter/setters for JavaScript classes” by Daniel Ehrenberg and Kevin Gibbons.
In this post, we look at private fields, a new kind of private slot in instances and classes. This feature is specified by two ECMAScript proposals:
Warning: This is experimental work. Read the comments for more information on its limitations.
In this blog post, we’ll examine how we can test static types in TypeScript (inferred types, etc.). For example, given the following function:
function createPoint(x: number, y: number) {
return {x, y};
}
We’d like to check in a unit test that TypeScript infers this return type:
{x: number, y: number}
In order to do that, we need a few tools that we are going to look at first.
In this blog post, we examine how JavaScript’s global variables work. Several interesting phenomena play a role: the scope of scripts, the so-called global object, and more.
In this post, we look at public fields, which create instance properties and static properties.
Quoting a recent tweet by ES6 spec author Allen Wirfs-Brock:
Hoisting is old and confused terminology. Even prior to ES6: did it mean “moved to the top of the current scope” or did it mean “move from a nested block to the closest enclosing function/script scope”? Or both?
This blog post proposes a different approach to describing declarations (inspired by a suggestion by Allen).
Node.js 12 (which was released on 2019-04-23) brings improved support for ECMAScript modules. It implements phase 2 of the plan that was released late last year. For now, this support is available behind the usual flag --experimental-modules
.
Read on to find out how exactly this new support for ECMAScript modules works.
Brief spoiler: The filename extension .mjs
will be more convenient, but .js
can also be enabled for ES modules.
The proposal “JSON superset” (by Richard Gibson) is at stage 4 and therefore part of ECMAScript 2019. This blog post explains how it works.