Case Studies
Report Summary Case
A report summary can group rows, count statuses, and print a compact result.
Report Summary Case
report.ts
type Row = {
status: "pass" | "fail";
};
type Summary = {
pass: number;
fail: number;
};
function summarize(rows: Row[]): Summary {
const summary: Summary = { pass: 0, fail: 0 };
for (const row of rows) {
summary[row.status] += 1;
}
return summary;
}
const includeFailure: boolean = ;
const rows: Row[] = [
{ status: "pass" },
{ status: includeFailure ? "fail" : "pass" },
{ status: "pass" }
];
const summary: Summary = summarize(rows);
console.log(`pass=${summary.pass};fail=${summary.fail}`);
type Row = {
status: "pass" | "fail";
};
type Summary = {
pass: number;
fail: number;
};
function summarize(rows: Row[]): Summary {
const summary: Summary = { pass: 0, fail: 0 };
for (const row of rows) {
summary[row.status] += 1;
}
return summary;
}
const includeFailure: boolean = ;
const rows: Row[] = [
{ status: "pass" },
{ status: includeFailure ? "fail" : "pass" },
{ status: "pass" }
];
const summary: Summary = summarize(rows);
console.log(`pass=${summary.pass};fail=${summary.fail}`);
summary case
Accumulating into a typed summary object is a common pattern for scripts and small services.