Materi
Operator in memeriksa apakah sebuah nama properti ada di dalam objek. Pada union dua bentuk objek, pemeriksaan ini menyempitkan tipenya ke bentuk yang memiliki properti tersebut, karena typeof tidak menolong: kedua bentuk sama-sama menghasilkan "object".
type Motor = { cc: number };
type Mobil = { pintu: number; bagasi: boolean };
function jenis(k: Motor | Mobil): string {
if ("pintu" in k) return `Mobil ${k.pintu} pintu`;
return `Motor ${k.cc} cc`;
}Nama properti yang diperiksa ditulis sebagai teks di antara tanda kutip. Di dalam blok if, properti pintu sudah boleh dibaca; di luar blok itu, yang tersisa hanya bentuk Motor. Properti yang dipilih untuk memeriksa harus properti yang hanya dimiliki salah satu bentuk — properti yang ada di keduanya tidak menyempitkan apa pun.
Cara lain yang lazim dipakai adalah menambahkan satu properti penanda bertipe literal, misalnya jenis: "motor" dan jenis: "mobil", lalu membandingkannya dengan ===. Keduanya sah; operator in berguna ketika bentuk datanya sudah ada dan tidak bisa ditambahi penanda.