Back to Sanity

Early Return from Functions

.agents/skills/vercel-react-best-practices/rules/js-early-exit.md

5.24.0949 B
Original Source

Early Return from Functions

Return early when result is determined to skip unnecessary processing.

Incorrect (processes all items even after finding answer):

typescript
function validateUsers(users: User[]) {
  let hasError = false
  let errorMessage = ''

  for (const user of users) {
    if (!user.email) {
      hasError = true
      errorMessage = 'Email required'
    }
    if (!user.name) {
      hasError = true
      errorMessage = 'Name required'
    }
    // Continues checking all users even after error found
  }

  return hasError ? {valid: false, error: errorMessage} : {valid: true}
}

Correct (returns immediately on first error):

typescript
function validateUsers(users: User[]) {
  for (const user of users) {
    if (!user.email) {
      return {valid: false, error: 'Email required'}
    }
    if (!user.name) {
      return {valid: false, error: 'Name required'}
    }
  }

  return {valid: true}
}