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...
 }

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
 */

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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.