TypeScript/JavaScript Standards
Type Safety
- •Use strict TypeScript, never use
any - •Almost never use
ascasting - •Aim for e2e type-safety (API to Database to UI)
- •Let the compiler infer response types whenever possible
- •Use query-builders instead of raw SQL for type-safety and injection protection
Code Structure
- •Always use named exports; avoid default exports unless required
- •Don't create index files only for exports
- •Prefer
await/asyncoverPromise().then() - •Prefer types over interfaces
- •Leave types close to where they're used
- •Unused vars should start with
_(or don't exist at all)
Naming & Clarity
- •Don't abbreviate; use descriptive names
- •Always use early return over if-else
- •Prefer hash-lists over switch-case
- •Follow conventions:
SNAKE_CAPSfor constants,camelCasefor functions,kebab-casefor files - •Avoid indentation levels, strive for flat code
- •Prefer string literals over string concatenation
Avoid
- •Redundant names:
usersnotuserList - •Suffixes like Manager, Helper, Service unless essential
- •Over-long names:
retryCountovermaximumNumberOfTimesToRetryBeforeGivingUpOnTheRequest - •Magic strings/numbers: extract to named constants or enums
Tooling
- •Use pre-commit hooks for linting/parsing/removing dead code