[TIL] TypeScript type predicates
Type narrowing is the process by which a type is refined to a more specific type.
The TypeScript compiler does its best to narrow types using the existing JavaScript code.
TIL about TypeScript type predicates, a way to be more explicit and have better control over type inference.
First, we define a function whose return type is a type predicate:
function isAudio(content: Audio | Text): content is Audio { return (content as Audio).duration !== undefined;}We can now use isAudio to narrow the type of a variable we’re working with,
allowing TypeScript from that point on to know the more specific type:
let content = getContent();
if (isAudio(content)) { content.play();} else { content.render();}Resources: