---
date: 2020-11-26
id: f8951d1c-bddf-49c3-bd61-fdfffc412deb
title: predicate
---

# Origin

Latin praedicatus "something declared"

# Definition

A function that returns a single boolean value

# Examples

``` typescript
type Predicate = () => boolean

function isTurkey(x: string) {
    return x === 'turkey'
}
```

``` typescript
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
    }
}
```
