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.