Published on

บันทึก - เรียนรู้ Typescript (Any กับ Unknow ใน Typescript)

วันนี้มาเขียนเพิ่มเติมเกี่ยวกับสิ่งที่เรียนรู้ใน Typescript ครับ ความแตกต่างระหว่าง Any กับ Unknow ใน Typescript

สิ่งที่เหมือนกันของ Any กับ Unknow

คือการกำหนดชนิดข้อมูลให้เป็นชนิดใดก็ได้ ตัวอย่าง

let a: any = 'hello A'
a = 10

let b: unknown = 'hello B'
b = true

สิ่งที่แตกต่างกันของ Any กับ Unknow

  • Any -> จะไม่ตรวจสอบชนิดข้อมูล
  • Unknow -> จะมีการตรวจสอบชนิดข้อมูล

มาดูตัวอย่างรูปด้านล่างกันครับ

ตัวอย่างใช้ Any โยนเข้าไปใน function
ตัวอย่างใช้ type any โยนเข้าไปใน function

จากรูปคือเรากำหนด fname ให้มีค่าเป็น "hello world" โดยกำหนด type ให้เป็น any

แล้วเราก็เปลี่ยนค่าให้เป็นตัวเลขคือ 303

แล้วโยนค่า fname เข้าไปใน function firstUpperCase ซึ่งรับค่าเป็น string อยู่

จะพบว่าในส่วนของการ compile ไม่มีการแจ้งเตือน Error แต่ถ้า Run จะพบว่า Error ดังนั้นจึงต้องระวังส่วนนี้ให้ดี เพราะเมื่อใช้ type เป็น any จะพบว่ามันไม่เช็ค type

ซึ่งจะแตกต่างจากการใช้ unknow ดังรูปด้านล่าง

ตัวอย่างใช้ type unknow โยนเข้าไปใน function
ตัวอย่างใช้ type unknow โยนเข้าไปใน function

จะพบว่าในส่วนของ fname ที่โยนเข้าไปที่ firstUpperCase แจ้ง Error เพราะ มันตรวจสอบว่า fname ณ ปัจจุบันมีค่าเป็น number ไม่ใช่เป็น string เลยทำให้มีการแจ้งเตือน

ใน Typescript คือถ้าหากว่าไม่สามารถกำหนด Type ได้ แนะนำให้ใช้ Type unknow มากกว่าการใช้ any ครับ

หากบทความนี้มีส่วนไหนผิดพลาดประการใด ก็ขออภัยมา ณ ที่นี้ด้วยเน้อครับ

หวังว่าบทความนี้จะมีประโยชน์กับคุณผู้อ่าน ไม่มากก็น้อยเน้อครับ ^^