2011-05-03 22 views
62

Theo wiki JSDoc cho @param bạn có thể chỉ ra một @ param là không bắt buộc sử dụngLàm thế nào để chỉ ra param là tùy chọn bằng cách sử dụng JSDoc nội dòng?

/** 
    @param {String} [name] 
*/ 
function getPerson(name) { 
} 

và bạn có thể chỉ ra một param inline sử dụng

function getPerson(/**String*/ name) { 
} 

Và tôi có thể kết hợp chúng như sau, trong đó hoạt động ok.

/** 
    @param [name] 
*/ 
function getPerson(/**String*/name) { 
} 

Nhưng tôi muốn biết liệu có cách nào để làm tất cả nội dòng nếu có thể.

Trả lời

40

Tôi đã tìm thấy cách để thực hiện việc này bằng Trình biên dịch đóng cửa của Google type expressions. Bạn đặt một dấu bằng sau kiểu như vậy: function test(/**String=*/arg) {}

+8

WebStorm/IntellIDEA hỗ trợ ký hiệu này –

+2

Vâng, vì vậy tôi nghĩ rằng đã đạt được đủ sự chấp nhận của nó để đánh dấu nó như là câu trả lời . – studgeek

+4

@PeterAronZentai, tôi sẽ thêm WebStorm/IntelliIDEA hỗ trợ nó như là kết quả của việc tôi đưa ra một yêu cầu tính năng cho nó :). Giờ đây, họ hỗ trợ phần lớn các biểu thức loại Trình biên dịch của Google đóng gói tuyệt vời. – studgeek

47

Sau khi một số đào lên tôi thấy đây là ok cũng

/** 
* @param {MyClass|undefined} 
* @param {MyClass=} 
* @param {String} [accessLevel="author"] The user accessLevel is optional. 
* @param {String} [accessLevel] The user accessLevel is optional. 
*/ 

Chỉ cần nhẹ hơn trực quan hấp dẫn hơn function test(/**String=*/arg) {}

+7

Những trang này hợp lệ (và được ghi lại trong trợ giúp JSDoc), nhưng chúng không phải là ** nội tuyến ** - đó là những gì tôi đang tìm kiếm. – studgeek

+0

Câu hỏi về ký hiệu JSDoc nội tuyến. Đây là thông tin thú vị, nhưng không trả lời câu hỏi –

41

Từ official documentation:

Tham số tùy chọn

Thông số tùy chọn có tên là foo.

@param {number} [foo] 
// or: 
@param {number=} foo 

Một tham số foo tùy chọn có giá trị mặc định 1.

@param {number} [foo=1] 
+2

Tôi đã hỏi làm thế nào để làm điều đó nội tuyến. Ví dụ bạn đang cung cấp dường như giống như những gì tôi đã thể hiện trong câu hỏi của mình. – studgeek

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