2015-04-06 53 views
3

我不知道這個(如果有的話)與Google Closure有多大關係,或者它是否全部是乾淨的jsdoc,但我嘗試使用@typedef來定義特定類型的函數喜歡這個;使用@typedef來定義特定的函數類型

/** 
* @typedef {function(paramType0, paramType1):returnType} name.space.and.TypeName 
*/ 

也試過

/** 
* @typedef {function(paramType0, paramType1):returnType} 
*/ 
name.space.and.TypeName; 

其中,param和返回類型是我想定義的功能本規範的原因。我的問題是這個;

爲什麼驗證告訴我「方法不是函數類型」。我知道這是一個使用類型'Function'的選項,但據我所知,這不允許我定義參數和返回類型?我錯了嗎?

我非常感謝在這種情況下的一些幫助。謝謝。

+0

聽起來你是使用typedef的小姐,是你的U唱宣稱的類型? (第二種形式更正確)。 – John

回答

3

典型使用的typedef看起來是這樣的:

/** @typedef {function():string} */ 
var SomeFunctionType; 

/** @param {SomeFunctionType} x This is a function */ 
function useFunction(x) { 
    ... 
} 

的問題是缺乏一些細節,我希望你真正想要一個@type聲明輸入一個值,而不是創建一個類型名稱:

/** @type {function():string} */ 
var someFunction = getFunctionFromSomewhere(); 

someFunction(); 

的jsdoc註釋的概述可以在這裏找到: https://developers.google.com/closure/compiler/docs/js-for-compiler

+0

這不是一個答案。這更多的是評論。 – zero298

+0

它可能會也可能不會。正如我在評論中指出的那樣,這個問題並不完整。 – John

+0

我相信它確實回答了這個問題,正如作者所描述的@typedef的濫用。如果沒有確切的錯誤或類型的示例用法,則不可能更具體。 – John

相關問題