פיתוח של Apps Script באמצעות TypeScript

TypeScript הוא קבוצת-על של JavaScript מסוג הקלדת, שיכולה להדר לסקריפט Apps פשוט. השימוש ב-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 Drive באמצעות הפקודה clasp הבאה:

clasp push --watch

הפקודה הזו מזהה שינויים בקובץ TypeScript ומשתמשת ב-typescript כדי להדר את הקוד וב-clasp כדי להעלות את הפרויקט ל-Google Drive.

דיווח על בעיות או שליחת בקשה להוספת תכונה בקובץ

אם נתקלתם בבעיה בכלי clasp, תוכלו לדווח עליה ב-GitHub.

אם תיתקלו בבעיה או בבאג ב-TypeScript עצמו, תוכלו לדווח עליו במאגר GitHub של TypeScript.