Jak określić tablicę obiektów jako parametr lub wartość zwracaną w JSDoc?

105

W JSDoc, najlepsza dokumentacja, jaką mogę znaleźć, pokazuje użycie następującego, jeśli masz tablicę określonego typu (na przykład tablicę ciągów), taką jak:

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

Jak zamienić poniższe znaki zapytania na tablicę obiektów?

/**
 * @param {???????} myObjects All of my equally awesome objects
 */
 function blah(myObjects){
     //stuff here...
 }
Promień
źródło

Odpowiedzi:

182

Powinieneś bardziej szczegółowo określić, co masz na myśli, mówiąc o JSDoc - jest to ogólny termin obejmujący prawie wszystkie narzędzia dokumentacji JavaScript w stylu JavaDoc.

Składnia, której użyłeś dla tablicy ciągów, wygląda jak obsługiwana przez Google Closure Compiler .

Używając tego, tablica obiektów wyglądałaby następująco:

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

Lub po prostu tablica czegokolwiek - to powinno działać z prawie wszystkimi narzędziami do dokumentacji:

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

jsdoc-toolkit , JSDoc 3 i JSDuck obsługują następującą składnię do oznaczania tablicy obiektów:

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

EDYTOWAĆ

Jeśli znasz klucze i typ zmiennej wartości, możesz również zrobić:

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

lub

/**
 * @param {{myNumber: Number, myString: String, myArray: Array}[]} myObjects
 */
Rene Saarsoo
źródło
10
Plik. notacja jest teraz przestarzała i jej obsługa powinna zostać usunięta później. Aktualna poprawna wersja to {Array<Object>}. Tylko po to, aby ten post był aktualny.
Kenny806
2
W JSDoc 3, jak spreparowałbyś tablicę tablic String? W starej składni mógłbym zrobić coś takiegoArray.<string[]>
Snekse
9
@ Kenny806 Przestarzałe? Proszę o dokument referencyjny?
Wilt
2
@Wilt: dokumentacja JSDoc jest sprzeczna co do kropki przed nawiasami kątowymi.
Dan Dascalescu
2
Ta odpowiedź nie wyjaśnia, jak zadeklarować klucze obiektów w tej tablicy ani jak zadeklarować tablicę obiektów z określonymi kluczami jako typem zwracanym. Ta odpowiedź tak.
Dan Dascalescu