JSDoc'da parametre veya dönüş değeri olarak bir nesne dizisi nasıl belirtilir?


105

JSDoc'ta, belirli bir türde bir diziniz varsa (örneğin bir dizi dizesi) aşağıdakileri kullanmak için bulabildiğim en iyi belgeler:

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

Aşağıdaki soru işaretlerini bir nesne dizisi belirterek nasıl değiştirirsiniz?

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

Yanıtlar:


182

JSDoc ile ne demek istediğinizi daha spesifik olmalısınız - bu, JavaScript için hemen hemen tüm JavaDoc tarzı dokümantasyon araçlarını kapsayan genel bir terimdir.

Dizeler dizisi için kullandığınız sözdizimi, Google Closure Compiler tarafından desteklenen sözdizimi gibi görünüyor .

Bunu kullanarak, bir Nesne dizisi şöyle olur:

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

Veya herhangi bir şey dizisi - bu hemen hemen tüm belge araçlarıyla çalışmalıdır:

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

jsdoc-toolkit , JSDoc 3 ve JSDuck , bir nesne dizisini belirtmek için aşağıdaki sözdizimini destekler:

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

DÜZENLE

Değerlerin anahtarlarını ve değişken türünü biliyorsanız, şunları da yapabilirsiniz:

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

veya

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

10
. gösterim artık kullanımdan kaldırılmıştır ve desteği daha sonra kaldırılmalıdır. Şu anki doğru sürüm {Array<Object>}. Sadece bu gönderiyi güncel tutmak için.
Kenny806

2
JSDoc 3 ile bir String dizisini nasıl belgelersiniz? Eski sözdiziminde şöyle bir şey yapabilirdimArray.<string[]>
Snekse

9
@ Kenny806 Kullanımdan kaldırıldı? Bir referans belgesi lütfen?
Wilt

2
@Wilt: JSDoc dokümantasyonu, köşeli parantezlerden önce nokta konusunda çelişkili .
Dan Dascalescu

2
Bu cevap, o dizideki nesnelerin anahtarlarının nasıl bildirileceğini ve dönüş türü olarak belirli anahtarlara sahip bir nesne dizisinin nasıl bildirileceğini açıklamaz. Bu cevap yapar.
Dan Dascalescu
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.