Clean Functions
F1: Too Many Arguments (Maximum 3)
ts// Bad - too many parameters function createUser( name: string, email: string, age: number, country: string, timezone: string, language: string, newsletter: boolean ) { // ... } // Good - use a typed object type UserData = { name: string; email: string; age: number; country: string; timezone: string; language: string; newsletter: boolean; }; function createUser(data: UserData) { // ... }
More than 3 arguments means your function is doing too much or needs a data structure.
F2: No Output Arguments
Don't modify arguments as side effects. Return values instead.
tstype Report = { content: string; }; // Bad - modifies argument function appendFooter(report: Report): void { report.content += "\n---\nGenerated by System"; } // Good - returns new value function withFooter(report: Report): Report { return { ...report, content: `${report.content}\n---\nGenerated by System`, }; }
F3: No Flag Arguments
Boolean flags mean your function does at least two things.
ts// Bad - function does two different things function render(isTest: boolean) { if (isTest) { renderTestPage(); } else { renderProductionPage(); } } // Good - split into two functions function renderTestPage() {} function renderProductionPage() {}
F4: Delete Dead Functions
If it's not called, delete it. No "just in case" code. Git preserves history.


