TypeScript: Type นั้นสำคัญไฉน?

Supanut Laddayam
2 min readSep 7, 2021

--

สวัสดีครับวันนี้อยากจะมาแชร์การใช้ Type สำคัญอย่างไรกับการ dev ด้วยภาษา TypeScript (TS)

Type

คือ…สิ่งใช้ระบุกับตัวแปร และ การคืนค่าของฟังก์ชันว่ามีลักษณะเป็นอย่างไร โดยแบ่งออกเป็น 2 ประเภทใหญ่ๆ

Type in TypeScript
  1. Primitive Types
  • number, string, boolean, void, undefined, symbol, null

2. Object Types

  • function, array, classes, objects

ระบุ Type ทำยังไง

  • case: ตัวแปร
กำหนด Type ให้ตัวแปร x
  1. ประกาศตัวแปรตามปกติ (const / let ก็ได้)
  2. ใส่ : หลังชื่อตัวแปร

หรือ

กำหนด Type ให้ตัวแปร y

ประกาศตัวแปรพร้อมกำหนดค่าเริ่มต้น

จะเห็นว่า x และ y มี type เดียวกัน แต่มีสิ่งที่ต่างกันอยู่(เก็บไว้พูดในเรื่องของ Type Annotation และ Type Interference นะครับ)

  • case ฟังก์ชัน
ฟังก์ชั่น add
  1. ประกาศฟังก์ชัน
  2. ใส่ : ที่หลัง ( ) เพื่อระบุว่า ‘ฟังก์ชั่นนี้จะ return ค่าออกมาเป็น type number’

**สังเกตว่าในส่วนของ parameter ก็สามารถระบุ type ได้เช่นเดียวกับระบุ type ตัวแปร ซึ่งการะบุ type จะช่วยให้ตรวจสอบได้เมื่อ มีการ เรียกใช้งานฟังก์ชัน แต่ส่งค่า a และ b มาไม่ตรง type (เช่นส่ง string มา) TS complier ก็จะแสดง error ให้ทราบ

ทำไมเราต้องแคร์เรื่อง Type ละ

  1. ตัว TS compiler จะใช้ types ในการวิเคราะห์ code ว่ามี error ตรงไหนบ้าง (ทราบ error เลย โดยไม่ต้องรอถึงช่วง run time)
  2. เป็นการบอกผู้ร่วมพัฒนา หรือคนที่มาอ่านโค้ดเข้าใจ ว่าตัวแปร หรือฟังก์ชั่นนั้นมี type หรือจะคืนค่าเป็น type อะไร

Type ช่วยเราในตอน Dev อย่างไร

ขอยกเป็นตัวอย่างเพื่อให้เข้าใจมากขึ้นครับ

ตัวอย่าง 1

ตัวอย่าง 1: กรณีการสร้างตัวแปร day และ day2 ที่มี type เป็น Date ซึ่งเมื่อเราต้องการเข้าถึง method ที่อยู่ใน class Date ตัว TS จะ guild มาให้ว่ามี method อะไรที่สามารถเรียกใช้ได้ และจะเตือน error(บรรทัดที่ 6 ) เมื่อเรียก method ที่ไม่ได้มีอยู่ใน class

ตัวอย่าง 2

ตัวอย่าง 2: กรณีการสร้างตัวแปร person ที่มี type เป็น { name: string } (object)ซึ่งก็ทำนองเดียวกับตัวอย่าง 1 เลยคือ จะมี guild แนะนำว่ามี key อะไรให้เข้าถึง และจะดัก error เมื่อ เรียก key ที่ไม่ได้อยู่ใน object

ตัวอย่าง 3

ตัวอย่าง 3: กรณีการสร้างตัวแปร gtr ที่มี type เป็น class Car, TS complier ก็สามารถ guild ถึง field และ method รวมไปถึงการตรวจสอบโค้ด error ได้เช่นกัน

สรุป

จากทั้ง 3 ตัวอย่างข้างต้น จะเห็นว่าการประกาศ Type ให้ตัวแปร หรือฟังก์ชันช่วยเราในการ dev เนื่องจากตัว TS complier จะช่วยในการหา error ทำให้เรารู้ได้อย่างรวดเร็วว่ามีข้อผิดพลาดเกิดขึ้น โดยไม่ต้องรอถึงตอน runtime ดังนั้นทุกที่มีการประกาศตัวแปร หรือฟังก์ชันเราควรระบุ Type ไว้ด้วยเสมอ

--

--

No responses yet