2014-04-01 18 views
6

W jsDoc mogę określić moje parametry tablicy i członków tak:JSDoc - jak określić długość tablicy

/** 
* @constructor 
* @param {Array.<string>} myArray 
*/ 
function someFunction(myArray){ 

    this.firstArray = myArray; 

    /** @member {Array.<float>} */ 
    this.secondArray = []; 

} 

Jest tam również sposób określić length lub minLength i maxLength tych tablic?

Odpowiedz

4

Myślę, że pytasz, czy możesz uwzględnić minimalną/maksymalną długość w wyrażeniach typu (na przykład Array.<string>).

Krótko mówiąc, odpowiedź brzmi: nie. Będziesz musiał udokumentować minimalną/maksymalną długość w opisie każdej z tablic.

+0

Muszę dokładnie opisać długość tablicy. Czy jest jakiś sposób na zrobienie tego? – Hitmands

1

Sprawdziłem przez UseJSDoc.org i Google Closure Compiler, a żadna z dokumentacji nie opisuje sposobu określenia długości tablicy.

Domyślam się, że kompilator sprawdza tylko typ, a nie długość, więc nawet gdyby była składnia do jawnego opisania długości tablicy, tablica o nieprawidłowej długości prawdopodobnie nadal przekazywałaby kompilator (żaden błąd nie zostałby zgłoszony).

Najlepszym sposobem na to jest w opisie ludzkiego języka parametru i powrotnych typu:

/** 
* Duplicates a 4-length array into itself. 
* e.g. `[2, 3, 5, 8] => [2, 2, 3, 3, 5, 5, 8, 8]` 
* @param {Array<number>} arr the array to duplicate (exactly 4 entries) 
* @returns {Array<number>} the result (an array of length 8) 
*/ 
function dupe(arr) { 
    ... 
} 

FYI, można użyć Array.<number> lub Array<number> lub nawet number[] wewnątrz deklaracji @type.

Jeśli ta funkcja jest dla Ciebie ważna (z pewnością z niej skorzystam!), Możesz submit an issue.

Powiązane problemy