Origin

Latin praedicatus “something declared”

Definition

A function that returns a single boolean value

Examples

type Predicate = () => boolean
 
function isTurkey(x: string) {
    return x === 'turkey'
}
interface Dog {
    bark: 'dog'
}
 
interface Cat {
    meow: 'cat'
}
 
function isCat(animal): animal is Cat {
    return (animal as Cat).meow !== undefined
}
 
function makeSound(animal: Cat | Dog) {
    if (isCat(animal)) {
        animal.meow
    } else {
        animal.bark
    }
}