วิธีระบุอาร์เรย์ของวัตถุเป็นพารามิเตอร์หรือค่าส่งคืนใน JSDoc


105

ใน JSDoc เอกสารที่ดีที่สุดที่ฉันสามารถหาได้แสดงให้ใช้สิ่งต่อไปนี้หากคุณมีอาร์เรย์ประเภทเฉพาะ (เช่นอาร์เรย์ของสตริง) เป็น:

/**
 * @param {Array.<string>} myStrings All my awesome strings
 */
 function blah(myStrings){
     //stuff here...
 }

คุณจะแทนที่เครื่องหมายคำถามด้านล่างเพื่อระบุอาร์เรย์ของวัตถุได้อย่างไร

/**
 * @param {???????} myObjects All of my equally awesome objects
 */
 function blah(myObjects){
     //stuff here...
 }

คำตอบ:


180

คุณควรเจาะจงมากขึ้นว่าคุณหมายถึงอะไรโดย JSDoc - นี่เป็นคำทั่วไปที่ครอบคลุมเครื่องมือเอกสารสไตล์ JavaDoc ทั้งหมดสำหรับ JavaScript

ไวยากรณ์ที่คุณใช้สำหรับอาร์เรย์ของสตริงลักษณะอย่างหนึ่งที่ได้รับการสนับสนุนโดยGoogle ปิดคอมไพเลอร์

เมื่อใช้สิ่งนี้อาร์เรย์ของวัตถุจะเป็น:

/**
 * @param {Array.<Object>} myObjects
 */

หรืออาร์เรย์ของอะไรก็ได้ - สิ่งนี้ควรใช้ได้กับเครื่องมือ doc ทั้งหมด:

/**
 * @param {Array} myArray
 */

jsdoc-toolkit , JSDoc 3และJSDuckสนับสนุนไวยากรณ์ต่อไปนี้เพื่อแสดงอาร์เรย์ของวัตถุ:

/**
 * @param {Object[]} myArray
 */

แก้ไข

ในกรณีที่คุณทราบคีย์และประเภทตัวแปรของค่าคุณสามารถทำได้:

/**
 * @param {Array.<{myNumber: Number, myString: String, myArray: Array}>} myObjects
 */

หรือ

/**
 * @param {{myNumber: Number, myString: String, myArray: Array}[]} myObjects
 */

10
. ขณะนี้สัญกรณ์เลิกใช้งานแล้วและควรยกเลิกการสนับสนุนในภายหลัง {Array<Object>}รุ่นที่ถูกต้องเป็นปัจจุบัน เพียงเพื่อให้โพสต์นี้เป็นปัจจุบัน
Kenny806

2
ด้วย JSDoc 3 คุณจะสร้างอาร์เรย์ของสตริงอาร์เรย์ได้อย่างไร ในไวยากรณ์เก่าฉันอาจทำบางอย่างเช่นArray.<string[]>
Snekse

9
@ Kenny806 เลิกใช้แล้ว? โปรดขอเอกสารอ้างอิง?
เหี่ยว

2
@Wilt: เอกสาร JSDoc ขัดแย้งกับจุดก่อนวงเล็บมุม
Dan Dascalescu

2
คำตอบนี้ไม่ได้อธิบายถึงวิธีการประกาศคีย์ของอ็อบเจ็กต์ในอาร์เรย์นั้นและวิธีการประกาศอาร์เรย์ของอ็อบเจ็กต์ที่มีคีย์เฉพาะเป็นประเภทส่งคืน คำตอบนี้ไม่
Dan Dascalescu
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.