2016-11-11 69 views
1

我最近圍繞JS代碼戳返回類型,我發現了以下注釋:明確設置的功能

/** 
* Explicitly set the return type here to prevent the primitive being lost when using new 
* @return {boolean} 
*/ 
function giveMeABoolean(please) { 
    ... 
} 

是怎麼回事?在JS中返回類型?我一直在網上搜索,無法找到任何關於此的信息。經過一些測試後,使用沒有註釋時,原語確實丟失。任何人都可以解釋這個註釋如何工作?

+0

註釋不改變行爲的。所有評論都被口譯員拋棄。 –

回答

4

那些評論是JSDoc,這只是一種方式,你可以記錄你的代碼。像IDE這樣的工具可以獲取這些文檔,並在嘗試瞭解某種方法的API時以很好的格式顯示給您。

當他們進行靜態分析以幫助爲智能感知等提示提示時,某些工具也可能包含此信息。這會給開發人員一個印象,即在處理代碼時,返回值的「類型」會保留/已知。但是,這些評論在運行時不會有任何影響。

Here's the documentation for the @return comment.這裏是一個的提供有相關例子:

/** 
* Returns the sum of a and b 
* @param {Number} a 
* @param {Number} b 
* @param {Boolean} retArr If set to true, the function will return an array 
* @returns {Number|Array} Sum of a and b or an array that contains a, b and the sum of a and b. 
*/ 
function sum(a, b, retArr) { 
    if (retArr) { 
     return [a, b, a + b]; 
    } 
    return a + b; 
} 
2

我認爲該代碼的作者正在提供該信息用於文檔目的。如果你真的想提供類型信息,你可能會考慮typescriptflow