Map component pattern

Map component pattern, TypeScript's conscious choice between soundness and completeness

TypeScript creates a very intuitive alignment between the abstract type and the component type, this is thanks to its conscious choice between soundness and completeness. Some more insight can be found in this recent talk.

The map component pattern (I don't know a better name for it) is a pattern I start to like a lot recently! This talk by Jenn Creighton explains it very well (+more motivations from creating component for more sensible reuse).