TS2774

This condition will always return true since this function is always defined. Did you mean to call it instead?

Broken Code ❌

interface MyDog {
  age: () => number;
}
 
interface MyPerson {
  name: string;
  age: () => number;
}
 
function printAge(user: MyPerson | MyDog): void {
  if (user.age) {
  }
}

Fixed Code ✔️

Both interfaces (MyPerson & MyDog) declare a function named age, so that if-condition to check for its existence is unnecessary:

interface MyDog {
  age: () => number;
}
 
interface MyPerson {
  name: string;
  age: () => number;
}
 
function printAge(user: MyPerson | MyDog): void {
  console.log(user.age());
}