ถึงตอนนี้มี 4 วิธีในการจัดทำเอกสารวัตถุเป็นพารามิเตอร์ / ประเภท แต่ละคนมีการใช้งานของตัวเอง มีเพียง 3 รายการเท่านั้นที่สามารถใช้เพื่อบันทึกค่าส่งคืนได้
สำหรับวัตถุที่มีชุดคุณสมบัติที่รู้จัก (Variant A)
/**
* @param {{a: number, b: string, c}} myObj description
*/
ไวยากรณ์นี้เหมาะสำหรับวัตถุที่ใช้เป็นพารามิเตอร์สำหรับฟังก์ชันนี้เท่านั้นและไม่ต้องการคำอธิบายเพิ่มเติมของคุณสมบัติแต่ละรายการ มันสามารถใช้สำหรับการ@returns
ได้เป็นอย่างดี
สำหรับวัตถุที่มีชุดคุณสมบัติที่รู้จัก (Variant B)
มีประโยชน์มากคือพารามิเตอร์ที่มีไวยากรณ์ของคุณสมบัติ :
/**
* @param {Object} myObj description
* @param {number} myObj.a description
* @param {string} myObj.b description
* @param {} myObj.c description
*/
ไวยากรณ์นี้เหมาะสำหรับวัตถุที่ใช้เป็นพารามิเตอร์สำหรับฟังก์ชันนี้เท่านั้นและต้องการคำอธิบายเพิ่มเติมของแต่ละคุณสมบัติ @returns
นี้ไม่สามารถนำมาใช้สำหรับ
สำหรับวัตถุที่จะใช้มากกว่าหนึ่งจุดในแหล่งที่มา
ในกรณีนี้@typedefมีประโยชน์มาก คุณสามารถกำหนดประเภทที่จุดหนึ่งในแหล่งที่มาของคุณและใช้เป็นประเภทสำหรับ@param
หรือ@returns
หรือแท็ก JSDoc อื่น ๆ ที่สามารถใช้ประเภท
/**
* @typedef {Object} Person
* @property {string} name how the person is called
* @property {number} age how many years the person lived
*/
จากนั้นคุณสามารถใช้สิ่งนี้ใน@param
แท็ก:
/**
* @param {Person} p - Description of p
*/
หรือใน@returns
:
/**
* @returns {Person} Description
*/
สำหรับวัตถุที่มีค่าเป็นประเภทเดียวกันทั้งหมด
/**
* @param {Object.<string, number>} dict
*/
ประเภทแรก (สตริง) เอกสารประเภทของคีย์ซึ่งใน JavaScript เป็นสตริงเสมอหรืออย่างน้อยก็จะถูกบังคับให้สตริง ชนิดที่สอง (หมายเลข) คือชนิดของค่า นี่อาจเป็นประเภทใดก็ได้ ไวยากรณ์นี้สามารถใช้สำหรับ@returns
เช่นกัน
ทรัพยากร
ข้อมูลที่เป็นประโยชน์เกี่ยวกับประเภทเอกสารสามารถดูได้ที่นี่:
https://jsdoc.app/tags-type.html
PS:
เพื่อบันทึกค่าเผื่อเลือกที่คุณสามารถใช้ได้[]
:
/**
* @param {number} [opt_number] this number is optional
*/
หรือ:
/**
* @param {number|undefined} opt_number this number is optional
*/