ટેમ્પલેટ લિટરલ ટાઇપ્સ તમને ટેમ્પલેટમાં અન્ય ટાઇપ્સને ઇન્ટરપોલેટ કરીને નવા સ્ટ્રિંગ લિટરલ ટાઇપ્સ બનાવવા દે છે — ટાઇપ સ્તરે સ્ટ્રિંગ મેનીપુલેશન।
ts
= ;
: = ;
: = ;
type Color = "red" | "blue";
type Shade = "light" | "dark";
type Variant = `${Shade}-${Color}`;
// "light-red" | "light-blue" | "dark-red" | "dark-blue" — all combinations
કમ્પાઇલર યુનિયન્સના દરેક સંયોજનને વિસ્તૃત કરે છે — માન્ય સ્ટ્રિંગ કીઝ (CSS ક્લાસીસ, ઇવેન્ટ નામો, રૂટ પેટર્ન) આપોઆપ જનરેટ કરવા માટે ઉપયોગી।
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 બિલ્ટ-ઇન આંતરિક સહાયકો છે।
ટેમ્પલેટ લિટરલ ટાઇપ્સ સ્ટ્રિંગ-આધારિત APIઓને ટાઇપ-સુરક્ષિત બનાવે છે: રૂટ પેરામ્સ, ઇવેન્ટ સિસ્ટમ્સ, CSS-in-JS, ORM કોલમ નામો।
કોઈપણ string સ્વીકારવાને બદલે, તમે માન્ય સ્ટ્રિંગ્સના ચોક્કસ, જનરેટ કરેલ સમૂહ સુધી મર્યાદિત કરી શકો છો — જે સ્થાનોમાં પહેલાં સ્ટ્રિંગી-ટાઇપ્ડ હતાં ત્યાં કમ્પાઇલ સમયે ટાઇપો પકડી શકો છો।