type Placeholder<T extends string> = T extends `${string}{${infer P}}${infer REST}`
? P | Placeholder<REST>
: never;
declare function format<S extends string>(template: S, args: Record<Placeholder<S>, unknown>): string
let text = format('Name: {name}, Age: {age}', {name: 'Homer', age: 42})
标签:Typescript,string,format,Medium,Placeholder,infer
From: https://www.cnblogs.com/Answer1215/p/16895899.html