2015-04-06 80 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

相关问题