ชนิด Never
ชนิด never ใช้แทนค่าที่ไม่มีวันเกิดขึ้น ใช้ระบุฟังก์ชันหรือนิพจน์ที่ไม่มีวันคืนค่าหรือที่โยนข้อผิดพลาด
ตัวอย่างเช่น ลูปไม่รู้จบ:
const infiniteLoop = (): never => { while (true) { // do something }};การโยนข้อผิดพลาด:
const throwError = (message: string): never => { throw new Error(message);};ชนิด never มีประโยชน์ในการรับรองความปลอดภัยด้านชนิดและตรวจจับข้อผิดพลาดที่อาจเกิดขึ้นในโค้ด ชนิดนี้ช่วยให้ TypeScript วิเคราะห์และอนุมานชนิดได้แม่นยำยิ่งขึ้นเมื่อใช้ร่วมกับชนิดอื่นและคำสั่งโฟลว์การควบคุม ตัวอย่างเช่น:
type Direction = 'up' | 'down';const move = (direction: Direction): void => { switch (direction) { case 'up': // move up break; case 'down': // move down break; default: const exhaustiveCheck: never = direction; throw new Error(`Unhandled direction: ${exhaustiveCheck}`); }};