เอกสารประกอบใน UI ของ Google ชีต และคำอธิบายประกอบระดับสคริปต์
Google Apps Script ใช้ JSDoc เพื่อสร้างเอกสารประกอบและ การเติมข้อความอัตโนมัติสำหรับสคริปต์ JSDoc เป็นมาตรฐานสำหรับการจัดทำเอกสารโค้ด JavaScript โดยใช้ความคิดเห็น
ใน Apps Script นั้น JSDoc มีวัตถุประสงค์หลักดังนี้
- การเติมข้อความอัตโนมัติในเครื่องมือแก้ไข: ให้คำแนะนำเกี่ยวกับพารามิเตอร์และคำอธิบายฟังก์ชันขณะที่คุณพิมพ์
- ฟังก์ชันที่กำหนดเองใน Google ชีต: การจัดทำเอกสารฟังก์ชันที่กำหนดเองเพื่อให้ปรากฏในตัวช่วยสูตรของชีต
- คำอธิบายประกอบระดับสคริปต์: การใช้แท็กพิเศษเพื่อควบคุมลักษณะการทำงานทั่วทั้งสคริปต์ เช่น การให้สิทธิ์
ฟังก์ชันเอกสาร
หากต้องการบันทึกฟังก์ชัน ให้วางบล็อกความคิดเห็น JSDoc ไว้เหนือการประกาศฟังก์ชันโดยตรง
ความคิดเห็น JSDoc จะเริ่มต้นด้วย /** และสิ้นสุดด้วย */
/**
* Multiplies an input value by 2.
*
* @param {number} input The value to multiply.
* @return {number} The input multiplied by 2.
*/
function double(input) {
return input * 2;
}
เมื่อคุณจัดทำเอกสารฟังก์ชันด้วยวิธีนี้ ตัวแก้ไข Apps Script จะแสดงเคล็ดลับเครื่องมือของเอกสารเมื่อคุณอ้างอิงฟังก์ชัน เช่น เมื่อคุณ
พิมพ์ double( ในเอดิเตอร์ คุณจะเห็นสิ่งต่อไปนี้
double(input)
คูณค่าอินพุตด้วย 2
input: number - ค่าที่จะคูณ
แท็กที่ใช้กันทั่วไป
| แท็ก | คำอธิบาย |
|---|---|
@param {type} name description |
จัดทำเอกสารพารามิเตอร์ฟังก์ชัน สภาพแวดล้อมการพัฒนาใช้ {type} และ
description สำหรับ
การเติมข้อความอัตโนมัติ |
@return {type} description |
จัดทำเอกสารค่าที่ฟังก์ชันแสดงผล |
@example |
แสดงตัวอย่างวิธีใช้ฟังก์ชัน |
การโอเวอร์โหลดและหลายประเภท
แม้ว่า JavaScript จะไม่รองรับการโอเวอร์โหลดฟังก์ชันแบบคลาสสิก (การกำหนดฟังก์ชันหลายรายการที่มีชื่อเดียวกัน) แต่คุณก็สามารถเขียนฟังก์ชันเดียวที่จัดการอินพุตประเภทต่างๆ ได้ คุณสามารถบันทึกลักษณะการทำงานที่ "โอเวอร์โหลด" เหล่านี้ใน JSDoc ได้
ประเภทสหภาพ
หากพารามิเตอร์หรือค่าที่ส่งคืนเป็นได้หลายประเภท ให้ใช้ไปป์ (|) เพื่อสร้างประเภท Union ซึ่งเป็นเรื่องปกติใน Apps Script สำหรับฟังก์ชันที่รับค่าเดียวหรือช่วงของค่า (แสดงเป็นอาร์เรย์ 2 มิติ) ได้
/**
* Multiplies an input value (or a range of values) by 2.
*
* @param {number|number[][]} input The value or 2D array to multiply.
* @return {number|number[][]} The result.
*/
function double(input) {
return Array.isArray(input) ?
input.map(row => row.map(cell => cell * 2)) :
input * 2;
}
ลายเซ็นหลายรายการด้วย @overload
สำหรับฟังก์ชันที่มีลายเซ็นที่ซับซ้อนซึ่งพารามิเตอร์ที่อนุญาตขึ้นอยู่กับ
พารามิเตอร์อื่นๆ คุณสามารถใช้แท็ก @overload เพื่อกำหนดลายเซ็นที่แตกต่างกันแต่ละรายการได้
เอดิเตอร์ Apps Script ใช้ข้อมูลเหล่านี้เพื่อแสดงคำแนะนำที่เฉพาะเจาะจงตามเวอร์ชันของฟังก์ชันที่คุณเรียกใช้
/**
* @overload
* @param {string} name The name of the property to get.
* @return {string} The property value.
*/
/**
* @overload
* @param {number} index The index of the item to get.
* @return {object} The item object.
*/
function get(arg) {
// Implementation that handles both cases
}
ฟังก์ชันที่กำหนดเองใน Google ชีต
เมื่อเขียนฟังก์ชันที่กำหนดเองสำหรับ Google ชีต คุณต้องใช้แท็ก @customfunction เพื่อให้ฟังก์ชันปรากฏในตัวช่วยเติมข้อความอัตโนมัติและตัวช่วยสูตรของสเปรดชีต
JSDoc เป็นแหล่งที่มาของข้อความช่วยเหลือที่ผู้ใช้เห็นเมื่อใช้ฟังก์ชันที่กำหนดเองใน Google ชีต หากไม่มี JSDoc ผู้ใช้จะเห็นเฉพาะชื่อฟังก์ชัน เท่านั้น ทำให้ทราบได้ยากว่าฟังก์ชันทำอะไรหรือต้องใช้พารามิเตอร์ใด
แท็กที่รองรับและข้อจำกัดของ UI
แม้ว่า Apps Script จะแยกวิเคราะห์แท็ก JSDoc มาตรฐานส่วนใหญ่ แต่ UI ของ Google ชีตสำหรับ ฟังก์ชันที่กำหนดเองก็มีลักษณะการทำงานและข้อจำกัดบางอย่าง ดังนี้
@customfunction: ต้องระบุเพื่อให้ฟังก์ชันปรากฏในรายการสูตรของชีต@param: ชื่อและคำอธิบายจะแสดงในตัวช่วยสูตรของชีต@return: คำอธิบายที่ระบุในแท็ก@returnจะไม่ แสดงในตัวช่วยสูตรของชีต- พารามิเตอร์ที่ไม่บังคับ: UI ของชีตไม่รู้จักไวยากรณ์ JSDoc มาตรฐานสำหรับพารามิเตอร์ที่ไม่บังคับ
(เช่น
[name]หรือname=) พารามิเตอร์ทั้งหมด จะปรากฏเป็นพารามิเตอร์ที่ต้องระบุในตัวช่วยสูตร - ค่าเริ่มต้น: ระบบไม่รองรับค่าพารามิเตอร์เริ่มต้น (เช่น
[name=Value]) ใน UI ของชีต - การจัดรูปแบบ: ระบบไม่รองรับแท็ก HTML และการขึ้นบรรทัดใหม่ในข้อความธรรมดาในคำอธิบาย UI ของชีตจะแสดงคำอธิบายเป็นบล็อกข้อความเดียวและลบ HTML ส่วนใหญ่ออก
ตัวอย่างสำหรับ Google ชีต
/**
* Calculates a discount.
*
* @param {number} price The original price.
* @param {number} percent The discount percentage (e.g., 0.1 for 10%).
* @return {number} The price after discount.
* @customfunction
*/
function calculateDiscount(price, percent) {
return price * (1 - percent);
}
สิ่งที่ผู้ใช้เห็นใน Google ชีต
เมื่อผู้ใช้พิมพ์ =CALCULATEDISCOUNT( ในเซลล์ Google ชีตจะแสดงกล่องความช่วยเหลือต่อไปนี้
CALCULATEDISCOUNT
คำนวณส่วนลด
price: ราคาเดิม
percent: เปอร์เซ็นต์ส่วนลด (เช่น 0.1 สำหรับ 10%)
โปรดทราบว่าคำอธิบายสำหรับพารามิเตอร์มาจากแท็ก JSDoc
@param โดยตรง
คำอธิบายประกอบระดับสคริปต์
Apps Script ใช้แท็ก JSDoc ที่ไม่ซ้ำกันเพื่อควบคุมการตั้งค่าทั้งสคริปต์ โดยปกติแล้วจะวางไว้ที่ด้านบนของไฟล์สคริปต์
แท็กการให้สิทธิ์
| แท็ก | คำอธิบาย |
|---|---|
@OnlyCurrentDoc |
บอกให้ Apps Script ขอการให้สิทธิ์สำหรับเอกสารปัจจุบันเท่านั้น แทนที่จะขอสำหรับไฟล์ทุกไฟล์ในประเภทนั้น ดูรายละเอียดเพิ่มเติมได้ที่[คำแนะนำการให้สิทธิ์](/apps-script/guides/services/authorization) |
@NotOnlyCurrentDoc |
ใช้ในไลบรารีเพื่อลบล้าง
@OnlyCurrentDocคำอธิบายประกอบที่รับช่วงมา |