2014-04-01 20 views
6

Trong jsDoc tôi có thể xác định các tham số mảng và các thành viên của tôi như thế này:jsDoc - làm thế nào để xác định chiều dài mảng

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

    this.firstArray = myArray; 

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

} 

cũng Có cách nào để xác định length, hoặc minLengthmaxLength của các mảng?

Trả lời

4

Tôi nghĩ bạn đang hỏi liệu bạn có thể bao gồm độ dài tối thiểu/tối đa trong các biểu thức loại (ví dụ: Array.<string>) hay không.

Tóm lại, câu trả lời là không. Bạn sẽ cần ghi lại chiều dài tối thiểu/tối đa trong mô tả của mỗi mảng.

+0

Tôi cần mô tả chính xác chiều dài mảng. Có cách nào để làm việc này không? – Hitmands

1

Tôi đã xem qua UseJSDoc.orgClosure Compiler của Google và tài liệu không mô tả cách chỉ định độ dài mảng. Tôi đoán là trình biên dịch chỉ kiểm tra loại, chứ không phải cho chiều dài, vì vậy ngay cả khi có cú pháp mô tả rõ ràng chiều dài mảng, một mảng chiều dài không chính xác có thể vẫn vượt qua trình biên dịch (không có lỗi sẽ bị ném). Quay lại đầu trang

Cách tốt nhất để làm điều này là trong mô tả con người-ngôn ngữ của tham số và trả lại loại:

/** 
* 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, bạn có thể sử dụng Array.<number>, hoặc Array<number>, hoặc thậm chí number[] bên trong khai @type.

Nếu tính năng này quan trọng đối với bạn (tôi chắc chắn sẽ sử dụng nó!), Bạn có thể submit an issue.

Các vấn đề liên quan