user-defined type guard คือฟังก์ชันที่มี return type เป็น type predicate (x is T) เมื่อฟังก์ชันคืนค่า true คอมไพเลอร์จะ narrow argument ให้เป็น T ในโค้ดที่เรียกใช้ ทำให้คุณสามารถห่อหุ้มการตรวจสอบตอน runtime แบบกำหนดเองเอาไว้ได้
{ (): ; }
{ (): ; }
(): pet is {
pet;
}
() {
((pet)) {
pet.();
} {
pet.();
}
}
