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());
}