mirror of
https://github.com/alrayyes/wiki.git
synced 2024-11-22 03:26:22 +00:00
45 lines
623 B
Markdown
45 lines
623 B
Markdown
---
|
|
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
|
|
}
|
|
}
|
|
```
|