2013-05-02 28 views
5

Tôi đang cố gắng sử dụng gợi ý JSDoc về tham số của trình xử lý nhưng nó không hoạt động. Tôi đã thử với @type và @param và nó không hoạt động. JSDoc chính thức không chứa bất kỳ thông tin hữu ích nào về vấn đề này.Làm cách nào để JSDoc @param trong webstorm tham số của trình xử lý cuộc gọi lại?

này không hoạt động:

socket.on("data", 
    /** 
    * @param request {Object} 
    * @param request.code {Number} 
    * @param request.id {Number} 
    * @param request.sr {String} 
    */ 
    function(request) 
    {}); 

Trả lời

2

Bạn có thể sử dụng phức tạp "typedef" và "sở hữu" thẻ. Đã được ghi trong: http://usejsdoc.org/tags-typedef.html Tuy nhiên, "~" char dường như ngăn chặn WebIde liên kết chú thích loại. (Chỉ cần sử dụng đồng bằng typedef MyType chú thích mà không cần dấu ngã và nó hoạt động)

BTW, cho Google Closure cách:

/** @typedef {{code: Number, id: Number, str: String}} **/ 
SocketRequest; 

socket.on("data", handler); 

/** 
* @param {SocketRequest} req 
*/ 
function handler(req) { 
    //req will be hinted here 
} 

jsdoc này chú thích là đặc biệt đối với Google đóng cửa, nhưng có thể được sử dụng mà không đóng cửa chỉ vì lợi ích gợi ý. (nên hoạt động từ tháng 8 năm 2012: http://blog.jetbrains.com/webide/2012/08/closure-syntax/)

1

Đây là câu hỏi không rõ ràng, vì vậy đây là suy đoán của tôi:

socket.on("data", 
/** 
* @param request {Object} 
* @param request.code {Number} 
* @param request.id {Number} 
* @param request.sr {String} 
*/ 
function(request) 
    typeof request.id == 'number'; 
    console.log(request.sr); // will print out the string 
{}); 

Các comment chỉ mô tả mà dữ liệu/phím nên được mong đợi trong đối tượng yêu cầu.

+2

Có và các nhận xét không hoạt động, nó không nhận ra cả mã và cũng không phải là sr. Nó thậm chí không đăng ký như một đối tượng. – Discipol

2

Tôi nghĩ rằng bạn đổi tên và tên của các đối tượng, có lẽ hoán đổi chúng có thể giúp ích?

này là dành cho jsdoc3, nhưng tôi nghĩ rằng nó là như nhau:

http://usejsdoc.org/tags-param.html

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