Type Guards and Narrowing
Predicate Function
A reusable predicate function can narrow values inside array methods.
Predicate Function
predicate.ts
type User = {
name: string;
active: boolean;
};
function isActive(user: User): boolean {
return user.active;
}
const secondActive: boolean = ;
const users: User[] = [
{ name: "Ada", active: true },
{ name: "Milo", active: secondActive },
{ name: "Lin", active: false },
];
const activeNames: string = users.filter(isActive).map((user) => user.name).join(",");
console.log(activeNames);
type User = {
name: string;
active: boolean;
};
function isActive(user: User): boolean {
return user.active;
}
const secondActive: boolean = ;
const users: User[] = [
{ name: "Ada", active: true },
{ name: "Milo", active: secondActive },
{ name: "Lin", active: false },
];
const activeNames: string = users.filter(isActive).map((user) => user.name).join(",");
console.log(activeNames);
predicate
A function that returns a boolean can capture the guard logic used by `filter`.