Back to all reviewers

Explicit null checks

calcom/cal.com
Based on 5 comments
TSX

Always use explicit null and undefined checks instead of relying solely on optional chaining, especially when you need predictable boolean results or want to prevent null/undefined values from propagating to APIs, URLs, or causing runtime errors.

Null Handling TSX

Reviewer Prompt

Always use explicit null and undefined checks instead of relying solely on optional chaining, especially when you need predictable boolean results or want to prevent null/undefined values from propagating to APIs, URLs, or causing runtime errors.

Use explicit checks with logical operators to ensure clean boolean results:

// Preferred: explicit check ensures boolean result
const isPlatformUser = redirectUrl && redirectUrl.includes("platform") && redirectUrl.includes("new");

// Avoid: optional chaining can return undefined, making isPlatformUser potentially undefined
const isPlatformUser = redirectUrl?.includes("platform") && redirectUrl?.includes("new");

Provide defensive fallbacks for arrays and objects that might be null/undefined:

// Safe array access with fallback
const schedule = (atomSchedule.schedule || []).map(avail => ({
  startTime: new Date(avail.startTime),
  endTime: new Date(avail.endTime),
  days: avail.days,
}));

// Prevent undefined values in object spreads
query: {
  slug: ctx.query.user,
  ...(ctx.query.orgRedirection !== undefined && { orgRedirection: ctx.query.orgRedirection }),
}

Check for both null and undefined when the distinction matters:

// Comprehensive check for functions that don't accept null
if (value !== undefined && value !== null) {
  return decodeURIComponent(value);
}

This approach prevents runtime errors, ensures predictable data types, and makes your code’s null-handling behavior explicit and intentional.

5
Comments Analyzed
TSX
Primary Language
Null Handling
Category

Source Discussions