wiki/content/20201126101327-predicate.md

45 lines
621 B
Markdown

---
date: 20201126
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
}
}
```