mirror of
https://github.com/alrayyes/wiki.git
synced 2024-11-25 21:16:21 +00:00
45 lines
606 B
Markdown
45 lines
606 B
Markdown
|
---
|
||
|
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
|
||
|
}
|
||
|
}
|
||
|
```
|