Template Literal Types
Prerequisites: Literal types
A template literal type builds new string-literal types by combining
other types, using the same `${}` syntax as a runtime template
literal — but entirely at the type level.
type Direction = "top" | "bottom";
type Side = "left" | "right";
type Corner = `${Direction}-${Side}`;
// "top-left" | "top-right" | "bottom-left" | "bottom-right"
Useful for generating a precise set of valid string combinations
(like CSS-style property names) instead of a loose string type.