我不知道其中有多少(如果有的话)与 Google Closure 相关,或者它是否都是干净的 jsdoc,但我尝试使用 @typedef 来定义这样的特定类型的函数;
/**
* @typedef {function(paramType0, paramType1):returnType} name.space.and.TypeName
*/
也试过
/**
* @typedef {function(paramType0, paramType1):returnType}
*/
name.space.and.TypeName;
其中参数和返回类型是我要定义此函数规范的原因。我的问题是这样的;
为什么验证告诉我“方法不是函数类型”。我知道可以选择使用“函数”类型,但据我所知,这不允许我定义参数和返回类型吗?我在这方面也错了吗?
无论如何,我将不胜感激。谢谢。
最佳答案
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
关于javascript - 使用@typedef 定义特定的函数类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29474144/