พัฒนา 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