Template literal types तपाईंलाई template मा अन्य types को interpolation गरेर नयाँ string literal types बनाउन दिन्छ — type स्तरमा string manipulation।
ts
= ;
: = ;
: = ;
type Color = "red" | "blue";
type Shade = "light" | "dark";
type Variant = `${Shade}-${Color}`;
// "light-red" | "light-blue" | "dark-red" | "dark-blue" — all combinations
कम्पाइलर unions को प्रत्येक संयोजन विस्तार गर्छ — वैध string keys (CSS classes, event names, route patterns) स्वचालित रूपमा उत्पन्न गर्न उपयोगी।
type Entity = "user" | "post";
type Event = `${Entity}:${"created" | "deleted"}`;
// "user:created" | "user:deleted" | "post:created" | "post:deleted"
function on(event: Event, cb: () => void) {}
on("user:created", () => {}); // ✅
on("user:updated", () => {}); // ❌ not a valid event
type Getters<T> = {
[K in keyof T & string as `get${Capitalize<K>}`]: () => T[K];
};
// { name: string } → { getName: () => string }
Uppercase, Lowercase, Capitalize, Uncapitalize built-in intrinsic helpers हुन्।
Template literal types ले string-based APIs लाई type-safe बनाउँछ: route params, event systems, CSS-in-JS, ORM column names।
कुनै पनि string स्वीकार गर्नुको सट्टामा, तपाई सटीक, उत्पन्न गरिएको वैध strings को सेटमा सीमित गर्न सक्नुहुन्छ — compile समयमा typos पक्रन्छ जहाँ सधैं stringly-typed हुन्थ्यो।