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