พัฒนา Apps Script โดยใช้ TypeScript

TypeScript เป็นชุดย่อยของ JavaScript ที่มีการพิมพ์ ซึ่งคอมไพล์เป็น Apps Script แบบธรรมดาได้ เมื่อใช้ TypeScript ในการพัฒนาโปรเจ็กต์ Apps Script คุณจะได้รับประโยชน์ต่อไปนี้

คู่มือนี้จะครอบคลุมงานทั่วไปบางอย่างสำหรับการพัฒนาโปรเจ็กต์ Apps Script ด้วย TypeScript

ข้อกำหนด

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

คุณต้องมีเครื่องมือต่อไปนี้เพื่อใช้ TypeScript ในโปรเจ็กต์ Apps Script ที่มี clasp แม้ว่าการใช้ clasp จะไม่จำเป็น อย่างเคร่งครัดในการเปิดใช้ TypeScript ใน Apps Script แต่เราขอแนะนำ เป็นอย่างยิ่งเนื่องจากจะช่วยลดความซับซ้อนของขั้นตอนต่างๆ ได้มาก

ก่อนที่จะลองทำตามกระบวนการใดๆ ที่อธิบายไว้ด้านล่าง โปรดตรวจสอบว่าคุณได้ ติดตั้งสิ่งต่อไปนี้เพื่อเปิดใช้สภาพแวดล้อมการพัฒนาในเครื่องแล้ว

โปรดศึกษาclaspเอกสารประกอบ หากคุณไม่เคยใช้ clasp มาก่อน

การใช้ TypeScript ในโปรเจ็กต์ Clasp

คุณใช้ clasp เพื่อสร้างโปรเจ็กต์ Apps Script ใหม่ในเครื่องได้อย่างรวดเร็ว คำสั่งนี้จะสร้าง appsscript.json และ Code.gs ซึ่งเป็นฐานของโปรเจ็กต์ Apps Script

หากต้องการใช้ TypeScript ในไฟล์ App Script เพียงเปลี่ยนชื่อนามสกุลไฟล์จาก gs เป็น ts

แก้ไขไฟล์ TypeScript ในเครื่อง

คุณสามารถเขียนไฟล์ TypeScript ในเครื่องเป็นไฟล์ .ts ในโฟลเดอร์ของโปรเจ็กต์ได้โดยใช้โปรแกรมแก้ไขที่ต้องการ

ตัวอย่างเช่น ไฟล์ชื่อ index.ts อาจมีโค้ด TypeScript ดังนี้

const greeter = (person: string) => {
  return `Hello, ${person}!`;
}

let user = 'Grant';
Logger.log(greeter(user));

คุณสามารถเขียน TypeScript ด้วยฟีเจอร์ ES6+ เช่น ฟังก์ชันลูกศร และการแทรกสตริง (${var}) ระบบจะแปลงไฟล์เหล่านี้เป็นโครงสร้าง Apps Script เมื่อคุณพุชโปรเจ็กต์ไปยังเซิร์ฟเวอร์ Apps Script

อัปโหลดโปรเจ็กต์ Apps Script ในเครื่องที่ใช้ TypeScript

เมื่อแก้ไขไฟล์ TypeScript และ Apps Script ในเครื่องเสร็จแล้ว คุณ จะอัปโหลดไฟล์ในเครื่องไปยัง Google ไดรฟ์ได้โดยใช้คำสั่งต่อไปนี้clasp

clasp push --watch

คำสั่งนี้จะตรวจสอบการเปลี่ยนแปลงไฟล์ TypeScript และใช้ typescript เพื่อคอมไพล์ โค้ด และ clasp เพื่ออัปโหลดโปรเจ็กต์ไปยัง Google ไดรฟ์

รายงานปัญหาหรือส่งคำขอฟีเจอร์

หากพบปัญหาเกี่ยวกับclaspเครื่องมือนี้ คุณสามารถรายงานปัญหาได้ที่ GitHub

หากพบปัญหาหรือข้อบกพร่องใน TypeScript เอง คุณสามารถรายงานปัญหาได้ในที่เก็บ GitHub ของ TypeScript