Typescript 4.1 Beta Brings Template Literal Types Now
Template literal types bring the syntax of JavaScript's template strings (using backticks and ${} ) into type positions. While standard string literal types define a variable as holding a specific, fixed string, template literal types allow for the of new string types by concatenating existing ones. Key Syntax and Composition
: New as clauses allow developers to transform property names when creating new object types. For example, you can take an existing interface and generate a new one with "changed" suffixes for event handling. TypeScript 4.1 beta brings template literal types
: Developers can now enforce specific patterns, such as validating IPv4 addresses (e.g., $number.$number.$number.$number ) directly at the type level. Template literal types bring the syntax of JavaScript's
TypeScript 4.1 also introduced to support these new capabilities: Uppercase Lowercase Capitalize Uncapitalize For example, you can take an existing interface
: If a union of types is used within the template, TypeScript generates every possible combination of those strings.
: Combining a literal type with a template produces a single, specific string type.
: When combined with conditional types and the infer keyword, template literal types can act as a simple parser, breaking down complex strings into their constituent parts for deep type inspection. Conclusion Documentation - Template Literal Types - TypeScript
