Bagaimana cara menentukan array objek sebagai parameter atau nilai kembali di JSDoc?

105

Di JSDoc, dokumentasi terbaik yang dapat saya temukan menunjukkan menggunakan berikut ini jika Anda memiliki array dengan tipe tertentu (seperti array string) seperti:

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

Bagaimana Anda mengganti tanda tanya di bawah ini dengan menentukan sebuah array objek?

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

Jawaban:

180

Anda harus lebih spesifik apa yang Anda maksud dengan JSDoc - ini adalah istilah umum yang mencakup hampir semua alat dokumentasi bergaya JavaDoc untuk JavaScript.

Sintaks yang Anda gunakan untuk larik string terlihat seperti yang didukung oleh Google Closure Compiler .

Menggunakan ini, array Objek akan menjadi:

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

Atau hanya serangkaian apa saja - ini seharusnya bekerja dengan hampir semua alat dokumen:

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

jsdoc-toolkit , JSDoc 3 , dan JSDuck mendukung sintaks berikut untuk menunjukkan larik objek:

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

EDIT

Jika Anda mengetahui kunci dan jenis variabel dari nilai, Anda juga dapat melakukan:

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

atau

/**
 * @param {{myNumber: Number, myString: String, myArray: Array}[]} myObjects
 */
Rene Saarsoo
sumber
10
Itu. notasi sekarang tidak digunakan lagi dan dukungannya harus dihentikan nanti. Versi yang benar saat ini adalah {Array<Object>}. Hanya untuk terus memperbarui posting ini.
Kenny806
2
Dengan JSDoc 3, bagaimana Anda mendokumentasikan array array String? Dalam sintaks lama saya mungkin melakukan sesuatu sepertiArray.<string[]>
Snekse
9
@ Kenny806 Tersisih? Tolong dokumen referensi?
Layu
2
@Wilt: dokumentasi JSDoc bertentangan tentang titik sebelum tanda kurung sudut.
Dan Dascalescu
2
Jawaban ini tidak menjelaskan cara mendeklarasikan kunci objek dalam larik itu, dan cara mendeklarasikan larik objek dengan kunci tertentu sebagai tipe kembalian. Jawaban ini bisa.
Dan Dascalescu