Şimdiye kadar nesneleri parametre / tür olarak belgelemenin 4 farklı yolu vardır. Her birinin kendi kullanımları vardır. Geri dönüş değerlerini belgelemek için sadece 3 tanesi kullanılabilir.
Bilinen bir özellik kümesine sahip nesneler için (Varyant A)
/**
* @param {{a: number, b: string, c}} myObj description
*/
Bu sözdizimi, yalnızca bu işlev için parametre olarak kullanılan ve her özelliğin daha fazla açıklanmasını gerektirmeyen nesneler için idealdir. Bu kullanılabilir @returns
yanı .
Bilinen bir özellik kümesine sahip nesneler için (Varyant B)
Özellikler sözdizimine sahip parametreler çok yararlıdır :
/**
* @param {Object} myObj description
* @param {number} myObj.a description
* @param {string} myObj.b description
* @param {} myObj.c description
*/
Bu sözdizimi, yalnızca bu işlev için parametre olarak kullanılan ve her özelliğin daha fazla açıklanmasını gerektiren nesneler için idealdir. Bu için kullanılamaz @returns
.
Kaynakta birden fazla noktada kullanılacak nesneler için
Bu durumda @typedef çok kullanışlı olur. Eğer kaynağında bir noktada tipini tanımlamak ve bir tip olarak kullanabilirsiniz @param
veya @returns
bir tip yararlanabilirler diğer JSDoc etiketleri ya da.
/**
* @typedef {Object} Person
* @property {string} name how the person is called
* @property {number} age how many years the person lived
*/
Daha sonra bunu bir @param
etikette kullanabilirsiniz:
/**
* @param {Person} p - Description of p
*/
Veya @returns
:
/**
* @returns {Person} Description
*/
Değerleri aynı türde olan nesneler için
/**
* @param {Object.<string, number>} dict
*/
İlk tür (dize), JavaScript'te her zaman bir dize olan veya en azından her zaman bir dizeye zorlanacak olan anahtarların türünü belgeler. İkinci tip (sayı), değerin tipidir; bu herhangi bir tür olabilir. Bu sözdizimi şunlar için kullanılabilir@returns
.
kaynaklar
Dokümanlama türleri hakkında yararlı bilgiler burada bulunabilir:
https://jsdoc.app/tags-type.html
Not:
isteğe bağlı bir değeri belgelemek için şunları kullanabilirsiniz []
:
/**
* @param {number} [opt_number] this number is optional
*/
veya:
/**
* @param {number|undefined} opt_number this number is optional
*/