Back to Snippets
TypeScript

Type Guard for Non-Null Values

Description

TypeScript type guard to filter out null/undefined values from arrays

Code

/**
 * Type guard to check if value is not null/undefined
 * @param value Value to check
 * @returns Type predicate confirming non-null/undefined
 */
function isNotNullOrUndefined<T>(value: T | null | undefined): value is T {
  return value !== null && value !== undefined;
}

// Usage Example
const mixedArray = [1, null, 2, undefined, 3, 4, null];
const filteredArray = mixedArray.filter(isNotNullOrUndefined);
// filteredArray type is number[] (not (number | null | undefined)[])
console.log(filteredArray); // [1, 2, 3, 4]

// With objects
interface User {
  id: number;
  name?: string | null;
}

const users: User[] = [{ id: 1, name: 'John' }, { id: 2, name: null }, { id: 3 }];
const usersWithNames = users
  .map(user => user.name)
  .filter(isNotNullOrUndefined);
// usersWithNames type is string[]

Usage

Essential for TypeScript projects to maintain type safety when filtering null/undefined values from arrays

Tags

TypeScriptType GuardNull Safety