แนะนำภาษา TypeScript

16 July 2021

สำหรับบทแรกในบทเรียนนี้ จะเป็นการแนะนำให้คุณรู้จักกับภาษา TypeScript กันก่อน ในการเริ่มต้นเรียนรู้การเขียนโปรแกรมทุกภาษา เป็นเรื่องดีถ้าหากเราทราบข้อมูลพื้นฐานเกี่ยวกับภาษาที่จะเรียนรู้ก่อน เพื่อให้เข้าใจว่าทำไมมันจึงถูกสร้างขึ้นมาและทำไมเราจึงต้องใช้มัน และนี่เป็นเนื้อหาในบทนี้

  • ภาษา TypeScript คืออะไร
  • ประวัติของภาษา TypeScript
  • คุณสมบัติของภาษา TypeScript
  • การเขียนโปรแกรมภาษา TypeScript
  • เครื่องมือพัฒนาโปรแกรมภาษา TypeScript

ภาษา TypeScript คืออะไร

ภาษา TypeScript เป็นภาษาเขียนโปรแกรมที่พัฒนาโดย Microsoft มันเป็นภาษาที่มีไวยากรณ์การเขียนที่เข้มงวดในเรื่องของประเภทข้อมูลซึ่งช่วยควบคุมการใช้งานประเภทข้อมูลในโปรแกรม ภาษา TypeScript ถูกออกแบบมาเพื่อทำให้การเขียนโปรแกรมในภาษา JavaScript มีประเภทข้อมูล ซึ่งนี่มีประโยชน์มากในการพัฒนาระบบและแอพพลิเคชันขนาดใหญ่ เนื่องจากมันสามารถช่วยตรวจสอบความผิดพลาดก่อนที่โปรแกรมจะทำงานได้ ซึ่งในภาษา JavaScript นั้นเราจะต้องรันโปรแกรมก่อนที่จะพบกับข้อผิดพลาดในเรื่องการใช้งานประเภทข้อมูล

ภาษา TypeScript สามารถใช้สำหรับพัฒนาแอพพลิเคชันของภาษา JavaScript ที่ทำงานทั้งที่ฝั่ง Client-side และ Server-side โดยเราสามารถใช้มันเพื่อพัฒนาโปรแกรมบน Node.js, Deno หรือบนเว็บเบราว์เซอร์ได้ ซึ่งในท้ายที่สุดแล้วโค้ดที่เขียนในภาษา TypeScript จะถูกแปลงเป็นภาษา JavaScript เพื่อรันและใช้งาน และในการแปลงโค้ดของภาษา TypeScript ให้เป็นภาษา JavaScript นั้น เรายังสามารถใช้เครื่องมืออย่าง Babel ในการกำหนดวิธีการคอมไพล์ของโปรแกรมได้

ภาษา TypeScript สนับสนุนการกำหนด Declaration file ไฟล์ที่มีนามสกุล d.ts ที่ใช้สำหรับกำหนดประเภทข้อมูลให้กับส่วนต่างๆ ของโค้ด เช่น ตัวแปร ฟังก์ชัน และคลาส เป็นต้น มันมักจะถูกใช้สำหรับอธิบายประเภทข้อมูลของโค้ดเดิมที่เขียนในภาษา JavaScript เพื่อช่วยให้โค้ดเหล่านั้นสามารถใช้งานร่วมกับภาษา TypeScript ได้อย่างไร้รอยต่อ สำหรับโมดูลพื้นฐานบน Node.js นั้นมี Declaration file ให้ใช้งานสำหรับการเขียนภาษา TypeScript บน Node.js

ประวัติของภาษา TypeScript

ภาษา TypeScript ได้ถูกเปิดตัวเป็นครั้งแรกในเดือนตุลาคม 2012 ในเวอร์ชัน 0.8 หลังจากที่ได้มีการแอบพัฒนามากว่าสองปีภายในบริษัท Microsoft แต่ในการเปิดตัวครั้งแรกนั้น ยังไม่มี IDE ไหนเลยที่สนับสนุนการเขียนโปรแกรมด้วยภาษา TypeScript ยกเว้น Microsoft Visual Studio ซึ่งเป็น IDE ของทาง Microsoft เอง และในตอนนั้นมันก็ยังไม่สามารถใช้งานได้บนระบบปฏิบัติการ Linux หรือ Mac OS X

และในปี 2021 มี IDE เป็นจำนวนมากที่สนับสนุนการเขียนโปรแกรมด้วยภาษา TypeScript เช่น Emacs, Vim, Webstorm, Atom และ Visual Studio Code สำหรับอันสุดท้ายเป็น IDE ของ Microsoft เองและมันยังเป็น IDE ที่ได้รับความนิยมมากที่สุดในปัจจุบัน สำหรับในบทเรียนนี้ เราจะใช้โปรแกรม Visual Studio Code สำหรับเขียนโปรแกรมในภาษา TypeSctipt และเราแนะนำให้คุณใช้มันด้วยเช่นกัน

หลังจากนั้นภาษา TypeScript ได้มีการพัฒนามาอย่างต่อเนื่อง และเวอร์ชัน 0.9 ถูกเปิดตัวในปี 2013 ซึ่งสนับสนุนการใช้งาน Generic ในการประกาศฟังก์ชันและคลาสให้สามารถทำงานกับประเภทข้อมูลแบบไดนามิกส์ได้ ส่วนเวอร์ชัน 1.0 ได้ถูกเปิดตัวในการประชุมของ Microsoft ในปี 2014

จนกระทั่งในเดือนกรกฎาคม 2014 ทีมพัฒนาได้เปิดตัวคอมไพเลอร์เวอร์ชันใหม่ของภาษา TypeScript ที่กล่าวว่ามีประสิทธิภาพเพิ่มมากขึ้นถึง 5 เท่าเมื่อเทียบกับเวอร์ชันก่อนหน้า และเวอร์ชัน 2.0 ถูกเปิดตัวในเดือนกันยายน 2016 ซึ่งในเวอร์ชันนี้มีการเพิ่มคุณสมบัติใหม่ๆ เข้ามาหลายอย่าง เช่น การทำให้ตัวแปรไม่สามารถกำหนดค่าเป็น null ได้

TypeScript เวอร์ชัน 3.0 ถูกเปิดตัวในเดือนกรกฎาคม 2018 และมีการเพิ่มคุณสมบัติใหม่ เช่น Tuple ใน Rest พารามิเตอร์ของฟังก์ชัน Spread expression สำหรับการกำหนด Rest พารามิเตอร์ด้วยประเภทข้อมูลแบบ Tuple และการกำหนด Rest พารามิเตอร์ของฟังก์ชันด้วย Generic เป็นต้น

ในปัจจุบันเวอร์ชันล่าสุดของภาษา TypeScript อยู่ที่เวอร์ชัน 4.0 ในเวอร์ชันนี้มีการเพิ่มคุณสมบัติใหม่เข้ามาเพียงเล็กน้อย เช่น การสร้าง JSX Factories แบบกำหนดเอง และ Variadic Tuple Types นี่เป็นเวอร์ชันที่เราจะใช้ในบทเรียนนี้ และสำหรับแพ็ชล่าสุดอยู่ที่เวอร์ชัน 4.3.5 ในวันที่บทความนี้ถูกเขียนขึ้น

คุณสมบัติของภาษา TypeScript

ภาษา TypeScript เป็นภาษาที่ถูกสร้างมาเพื่อให้เป็นส่วนขยายหรือเพิ่มความสามารถให้กับภาษา JavaScript เพื่อช่วยให้การเขียนโปรแกรมมีประสิทธิภาพมากขึ้น โดยมันถูกพัฒนาตามข้อกำหนดของ ECMAScript และนี่เป็นคุณสมบัติที่สำคัญของภาษา TypeScript ที่ทำให้มันโดดเด่นและนักพัฒนาเป็นจำนวนมากเลือกที่จะใช้มัน

  • Type annotation: เป็นการประกาศตัวแปรแบบระบุประเภทข้อมูล นี่จะครอบคลุมส่วนของการประกาศในทุกที่ เช่น พารามิเตอร์ของฟังก์ชัน Property ของคลาสและออบเจ็ค เป็นต้น
  • Compile-time type checking: การตรวจสอบประเภทข้อมูลในระหว่างการคอมไพล์ ที่สามารถช่วยตรวจสอบข้อผิดพลาดที่อาจเกิดจากการใช้ข้อมูลผิดประเภท ก่อนที่โปรแกรมจะทำงาน
  • Type inference: เป็นการตรวจสอบประเภทข้อมูลอัตโนมัติจากค่า Literal ที่กำหนดให้กับตัวแปร หรือได้รับจากการคำนวณของ Expression
  • Type erasure: เป็นการลบประเภทข้อมูลที่กำหนดให้กับตัวแปรออกในตอนคอมไพล์เพื่อแปลงโค้ดเป็นภาษา JavaScript
  • Interfaces: ในภาษา TypeScript นั้น Interface ใช้สำหรับกำหนดรูปแบบและโครงสร้างให้กับคลาสและออบเจ็ค
  • Enumerated types: เป็นการกำหนดประเภทข้อมูลที่ประกอบไปด้วยเซ็ตของข้อมูลที่กำหนดเท่านั้น
  • Generics: เป็นการออกแบบฟังก์ชันและคลาสให้สามารถใช้ได้กับข้อมูลมากกว่าหนึ่งประเภท
  • Namespaces: เนมสเปซเป็นแนวคิดของการจัดกลุ่มของออบเจ็ค และช่วยแก้ปัญหาการตั้งชื่อที่ขัดแย้งกันได้
  • Tuples: เป็นเซ็ตของข้อมูลที่มีอยู่อย่างจำกัดคล้ายกับอาเรย์ แต่ไม่สามารถเปลี่ยนแปลงค่าได้

และนี่เป็นคุณสมบัติเดิมที่ยังสามารถใช้ได้เหมือนกับในภาษา JavaScript แต่บางอย่างอาจมีการเปลี่ยนแปลงเพื่อเพิ่มความสามารถ

  • Async/await
  • Classes
  • Modules
  • Arrow function
  • Optional parameters
  • Default parameters

นั่นหมายความว่าภาษา TypeScrtipt ไม่ได้ลดความสามารถใดๆ ที่ทำได้ในภาษา JavaScript แต่เพิ่มคุณสมบัติที่ช่วยให้การพัฒนาโปรแกรมมีประสิทธิภาพและดีขึ้น โดยเฉพาะอย่างยิ่งในเรื่องการใช้งานประเภทข้อมูล ซึ่งเป็นปัญหาที่พบมากที่สุดสำหรับการเขียนโปรแกรมในภาษา JavaScript

การเขียนโปรแกรมภาษา TypeScript

สำหรับการเขียนโปรแกรมด้วยภาษา TypeScript นั้นสามารถทำได้เหมือนภาษา JavaScript คุณสามารถเขียนมันบน Editor หรือแพลตฟอร์มใดๆ ได้ เพราะในตอนท้ายแล้ว โค้ดที่เขียนในภาษา TypeScript จะถูกแปลงเป็นภาษา JavaScript ก่อนนำไปรันเสมอ และนี่เป็นขั้นตอนพื้นฐานที่จะต้องทำสำหรับการเขียนโปรแกรมด้วยภาษา TypeScript

  1. เขียนโปรแกรมในภาษา TypeScript ที่มีนามสกุลเป็น .ts
  2. คอมไพล์โค้ดที่เขียนไปยังภาษา JavaScript จะได้รับไฟล์ที่มีนามสกุลเป็น .js
  3. และสุดท้ายรันโปรแกรม .js

และในการคอมไพล์ภาษา TypeScript เป็นภาษา JavaScript เราจะต้องติดตั้งคอมไพเลอร์ของมันก่อน คอมไพเลอร์ของภาษา TypeScript นั้นเป็นโปรแกรมแบบ CLI ที่มีชื่อว่า tsc ที่สามารถติดตั้งได้จาก NPM บน Node.js ซึ่งจะพูดถึงในบทต่อไป

เครื่องมือพัฒนาโปรแกรมภาษา TypeScript

ในการพัฒนาโปรแกรมด้วยภาษา TypeScript นั้นเราต้องการเครื่องมือสามอย่างสำหรับการทำงาน ซึ่งประกอบไปด้วย

  • Node.js สภาพแวดล้อมสำหรับคอมไพลและรันโปรแกรม
  • TypeScript คอมไพลเลอร์
  • Text edtitor หรือ IDE ซึ่งเป็นโปรแกรมสำหรับแก้ไขโค้ด

ในบทเรียนนี้ เราจะพูดถึงการติดตั้ง TypeScript คอมไพลเลอร์เท่านั้น เราจะถือว่าคุณสามารถติดตั้ง Node.js และ IDE ที่ต้องการใช้งานได้ด้วยตัวเอง แต่ถ้าหากคุณยังไม่ได้ทำก็สามารถเรียนรู้วิธีการติดตั้งได้จากบทเรียนเหล่านี้

หลังจากที่คุณได้ติดตั้ง Node.js และมี IDE พร้อมสำหรับการเขียนโปรแกรมแล้ว ในบทต่อไปจะเป็นการเริ่มติดตั้งคอมไพลเลอร์ของภาษา TypeScript

ในบทนี้ คุณได้ทำความรู้จักกับภาษา TypeScript ว่าคืออะไร เราได้พูดถึงประวัติความเป็นมา วัตถุประสงค์ และคุณสมบัติที่สำคัญของภาษา และแนะนำขั้นตอนที่จะต้องทำสำหรับการเขียนโปรแกรมในภาษา TypeScript พร้อมกับเครื่องมือที่จำเป็นต้องใช้ในการพัฒนาโปรแกรม

บทความนี้เป็นประโยชน์หรือไม่? Yes · No