Skip to main content

13 docs tagged with "clean-code"

View all tags

Classes and interfaces

Designing classes and interfaces in TypeScript. Explains information hiding (encapsulation) / single responsibility / keeping classes small / preferring composition over inheritance with Bad / Good comparisons. Also covers the ideas of cohesion and coupling.

Comments

The art of comments in TypeScript. The core principle that Why goes in comments and What goes in code, plus patterns to keep stale comments from contradicting the code during maintenance. Also covers using JSDoc and writing self-documenting code.

Conditionals

Best practices for conditional branching in TypeScript. A guide to keeping nesting shallow with early returns, discriminated unions and exhaustiveness checks, and reducing if statements with polymorphism, explained with Bad / Good comparisons.

Defining functions

Best practices for designing functions in TypeScript. Compares single responsibility / pure functions / early return / minimizing arguments / avoiding side effects / the DRY principle with Bad / Good examples. Also covers clarifying input and output with type annotations.

Defining variables

Best practices for defining variables in TypeScript. Explains turning magic numbers / magic characters into constants, choosing between const and let, minimizing scope, and not giving a variable multiple meanings, using Bad / Good comparisons.

Introduction

An introduction to writing clean, maintainable TypeScript. It explains step by step why each rule matters and how to apply it. A roadmap that organizes design principles for leveraging the type system across 13 articles.

Loops

How to choose between forEach / map / filter / reduce and the difference between for...of and for...in. Explains array-processing best practices that make intent clear with higher-order functions, using Bad / Good comparisons.

Naming conventions 1: case conventions, variables, and constants

Naming conventions in TypeScript, Part 1. Explains how to choose among the four case conventions (kebab, snake, Pascal, camel) and how to name variables, booleans, and constants, using Bad / Good comparisons. The gateway to naming well, so the code itself becomes documentation.

Naming conventions 2: functions and classes

Naming conventions in TypeScript, Part 2. Explains naming functions with verb patterns such as get / set / calculate, functions that return a boolean, suffix patterns for class names, and the criteria for not making method names redundant, using Bad / Good comparisons.

Naming conventions 3: improving naming quality

Naming conventions in TypeScript, Part 3. Covers principles that improve naming quality, such as pronounceable names, plural forms for arrays, unifying synonyms, contrasting words, avoiding meaningless words, and criteria for abbreviation, plus a comprehensive exercise and a quick reference summary.

SOLID principles

Explains the five SOLID principles of object-oriented design (single responsibility / open-closed / Liskov substitution / interface segregation / dependency inversion) with TypeScript examples. Deepen your understanding with a Bad / Good comparison for each principle.

Summary

A recap of all 11 articles in Introduction to Clean Code (TypeScript). It visualizes the big picture of naming, functions, type safety, object orientation, and the SOLID principles as a mindmap, and serves as a checklist to use while coding.

TypeScript-specific best practices

Best practices for using the TypeScript type system effectively. Explains avoiding any, choosing between unknown and never, generics, utility types, and narrowing with type guards, using Bad / Good comparisons.