تمرين إعادة البناء
Mini Template Renderer
أعد كتابة renderer صغير في TypeScript يستبدل مفاتيح القالب بقيم typed.
typescript
~16 دقيقة
متوسط
أعد بناء الكود
Rebuild
هذا هو الكود. اكتبه بنفسك.
الكود المرجعي
type TemplateContext = Record<string, string | number | boolean>;
interface RenderResult {
output: string;
missingKeys: string[];
}
function renderTemplate(template: string, context: TemplateContext): RenderResult {
const missingKeys = new Set<string>();
const output = template.replace(/\{\{\s*([a-zA-Z0-9_]+)\s*\}\}/g, (_match: string, key: string) => {
const value = context[key];
if (value === undefined) {
missingKeys.add(key);
return "";
}
return String(value);
});
return {
output,
missingKeys: [...missingKeys],
};
}
const rendered = renderTemplate("Hello {{ name }}, you have {{ count }} drills.", {
name: "Aziz",
count: 25,
});
console.log(rendered.output);
console.log(rendered.missingKeys);اكتب هنا