มือใหม่ Nuxt.js + TypeScript pt.2 การใช้ TypeScript ใน Nuxt.js เบื้องต้น
แนวทางการพัฒนาเว็บแอปพลิเคชั่นด้วย Nuxt.js + Typescript สำหรับมือใหม่
Last updated
Was this helpful?
แนวทางการพัฒนาเว็บแอปพลิเคชั่นด้วย Nuxt.js + Typescript สำหรับมือใหม่
Last updated
Was this helpful?
สวัสดีครับ มาต่อกันที่พาร์ทที่ 2 ซึ้งพาร์ทนี้เราจะเริ่มเอา Typescript ที่เข้าใจ Concept กันแล้วเมื่อพาร์ทที่ 1 มาใช้ร่วมงานกับ Nuxt.js กัน
ใครที่ยังไม่เข้าใจ Concept ของ Typescript ก็สามารถกดย้อนไปอ่านพาร์ทที่หนึ่งก่อนได้ตามลิ้งนี้เลยนะครับ
บทความนี้ไม่มีส่วนของพื้นฐาน Node.js นะครับ เพราะฉนั้นแล้วหากใครยังไม่คุ้นเคยกับ Node.js อาจจะต้องศึกษาพื้นฐานเพิ่มเติมนิดหน่อยครับ แนะนำตามลิ้งนี้ครับ
บทความนี้จะไม่มีส่วนของพื้นฐาน Vue.js เพราะฉนั้นแล้วหากใครที่ยังไม่คุ้นชินกับ Vue.js อาจต้องศึกษาพื้นฐานของ Vue.js ก่อนถึงจะต่อยอดมา Nuxt.js ได้นะครับ สามารถศึกษาเพิ่มเติมได้จากลิ้งนี้เลยครับ
อันดับแรกเราก็เปิด command ขึ้นมา แล้วบรรเลงคำสั่งติดตั้งนี้ลงไปได้เลยครับ
ส่วนสำคัญของเรามีแค่หลังจากพิมพ์คำสั่งเสร็จเรียบร้อยแล้วถึงช่วงต้องเลือก Programming language ให้เราเลือกเป็น TypeScript ตามรูปเลยครับ
สำหรับใครที่มีโปรเจ็ค Nuxt.js อยู่แล้วและต้องการ Install แบบ manual ให้ใช้คำสั่งนี้แทนครับ
หลังจากติดตั้งแพคเกจเรียบร้อยแล้ว ให้เราเปิดไฟล์ nuxt.config.js ขึ้นมา แล้วเพิ่ม '@nuxt/typescript-build' เข้าไปในส่วนของ buildModules ครับ
หลังจากนั้นให้สร้างไฟล์ tsconfig.json ให้เหมือนด้านล่างนี้ครับ
เพียงเท่านี้ก็เสร็จสิ้นการติดตั้ง TypeScript บน Nuxt.js โปรเจ็คแล้วครับ
ในไฟล์ .vue ของเรา ในส่วนของ script ให้เราเพิ่ม lang="ts" เข้าไปตรง tag script แบบนี้ครับ
ในแท็ก script เราต้อง import Vue from 'vue' แล้วเปลี่ยนจากการ export default {} ธรรมดาให้กลายเป็น export default Vue.extend({}) แบบนี้ครับ
หากเราต้องการเรียกใช้ component นี้ใน component อื่นด้วยเราจำเป็นต้องเพิ่ม name properties ให้กับ Vue.extend({}) ของเราแบบนี้ครับ
Vue component เดิม ในส่วนของ data นั้นจะเป็น function ที่ return object ออกไป ดังนั้นเราต้องใช้วิธีการกำหนด type ให้กับ object ซึ้งนั้นก็คือการสร้าง interface ขึ้นมา หลังจากนั้นเราจะให้ data ของเรา return object type ที่เราได้สร้าง interface ไว้ออกมานั้นเอง อธิบายแล้วงง ๆ ดูตัวอย่างกันดีกว่า
จะเห็นว่าผมได้สร้าง interface ชื่อ State แล้วหลังจากนั้นผมได้เปลี่ยน data ของผมให้เป็น function type State และ return object type State ออกไปนั่นเอง
เหมือนการกำหนด Type ให้กับ function ทั่วไปเลยครับ หาเป็น function ที่ return ค่าออกมาเราก็ต้องกำหนด type ตามค่าที่ output ออกมา หากไม่มี output ก็กำหนดให้เป็น void นั้นเองครับ ตัวอย่างแบบนี้ครับ
สำหรับการ props นั้นหากเราต้องรับ props เข้ามาเป็น object แน่นอนว่าเราต้องสร้าง interface ไว้รองรับ props ที่จะเข้ามา แต่ทว่าเราไม่สามารถนำ Type ที่เราสร้างไว้มาใส่ใน type ของ props ได้แบบตรง ๆ เราต้อง import ตัวช่วยเข้ามาอีกตัวชื่อว่า propsType และกำหนดค่าให้ props ของเราออกมาแบบนี้ครับ
แหละนี้คือตัวอย่างของโค้ดทั้งหมดอีกครั้งครับ อาจจะไม่ใช้โค้ดที่เอาไปใช้งานได้จริงจังอะไร แต่ก็พยายามโชว์ให้เห็น Concept ของการใช้ TypeScript ร่วมกับ Nuxt.js ให้ได้มากที่สุดครับ
นอกเหนือจากนี้แล้วเลือกหรือไม่เลือกอะไรก็แล้วแต่ครับ ส่วนที่เกี่ยวข้องกับบทความนี้มีแค่นี้แหละ
จบแล้วครับเบื้องต้นของการใช้ TypeScript ร่วมกับ Nuxt.js หวังว่าจะเป็นประโยชน์กับใครที่กำลังสนใจใช้ TypeScript ร่วมกับ Nuxt.js แต่ยังไม่ค่อยเข้าใจ Concept นะครับ สุดท้ายแล้วขอบคุณที่สนใจอ่านจนจบครับ
สำหรับใครที่อยากศึกษาให้ลึกเข้าไปอีกสามารถตามลิ้งนี้ไปได้เลยครับ
นี้ถือเป็นบทความแรกที่ผมเขียนในชีวิตเลย ผมไม่ใช่ผู้เชี่ยวชาญที่นำความรู้มาสอน เป็นแค่นักเขียนโค้ดที่ยังคงเรียนรู้อยู่ และมาแชร์สิ่งที่ได้เผื่อว่าเป็นประโยชน์กับใครได้บ้าง หากมีข้อผิดพลาดจุดไหนประการใด ผมขออภัยไว้ตรงนี้นะครับ