T
ExtractPlaceholders
testedExtracts all placeholders from a template string.
Example
ts
type Base = ExtractPlaceholders<'Hello {user.name}, {user.addresses.0.street}'>; // 'user.name' | 'user.addresses.0.street'Signature
ts
export type ExtractPlaceholders<In extends string>
= In extends `${infer Before}}${infer After}`
? Before extends `${string}{${infer Placeholder}`
? ClearPlaceholder<Placeholder> | ExtractPlaceholders<After>
: ExtractPlaceholders<After>
: never;Type Parameters
Inextends string