TC39 “Composites” – о чем это предложение?
Это предложение представляет составные типы (composites), новый способ объединения нескольких значений в одно. Думайте об этом как о создании простого объекта, но с фиксированной структурой, без прототипа и без магии. Он предназначен для таких вещей, как записи, кортежи или небольшие фрагменты структурированных данных, которым не нужны полноценные классы или объекты.
С помощью композитов вы можете такие вещи, как сравнение:
const pos1 = Composite({ x: 1, y: 4 });
const pos2 = Composite({ x: 1, y: 4 });
Composite.equal(pos1, pos2); // true
Но, каждый вызов Composite создает новый объект, так что === сравнение вернет false (или !== вернет true):
Composite({}) !== Composite({}); // true
Он быстрый, неизменяемый (immutable) по умолчанию и помогает избежать шаблонного кода, когда вам нужно просто сгруппировать значения.
Подробнее, у Мэтта:
Полное описание предложения тут: https://github.com/tc39/proposal-composites