- 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 -> จะมีการตรวจสอบชนิดข้อมูล
มาดูตัวอย่างรูปด้านล่างกันครับ
จากรูปคือเรากำหนด fname ให้มีค่าเป็น "hello world" โดยกำหนด type ให้เป็น any
แล้วเราก็เปลี่ยนค่าให้เป็นตัวเลขคือ 303
แล้วโยนค่า fname เข้าไปใน function firstUpperCase ซึ่งรับค่าเป็น string อยู่
จะพบว่าในส่วนของการ compile ไม่มีการแจ้งเตือน Error แต่ถ้า Run จะพบว่า Error ดังนั้นจึงต้องระวังส่วนนี้ให้ดี เพราะเมื่อใช้ type เป็น any จะพบว่ามันไม่เช็ค type
ซึ่งจะแตกต่างจากการใช้ unknow ดังรูปด้านล่าง
จะพบว่าในส่วนของ fname ที่โยนเข้าไปที่ firstUpperCase แจ้ง Error เพราะ มันตรวจสอบว่า fname ณ ปัจจุบันมีค่าเป็น number ไม่ใช่เป็น string เลยทำให้มีการแจ้งเตือน
ใน Typescript คือถ้าหากว่าไม่สามารถกำหนด Type ได้ แนะนำให้ใช้ Type unknow มากกว่าการใช้ any ครับ
หากบทความนี้มีส่วนไหนผิดพลาดประการใด ก็ขออภัยมา ณ ที่นี้ด้วยเน้อครับ
หวังว่าบทความนี้จะมีประโยชน์กับคุณผู้อ่าน ไม่มากก็น้อยเน้อครับ ^^