Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/426.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 可重用函数接口的JSDoc_Javascript_Typescript_Typescript Typings_Jsdoc_Jsdoc3 - Fatal编程技术网

Javascript 可重用函数接口的JSDoc

Javascript 可重用函数接口的JSDoc,javascript,typescript,typescript-typings,jsdoc,jsdoc3,Javascript,Typescript,Typescript Typings,Jsdoc,Jsdoc3,我正在连接多个电子邮件工具,并将它们的API抽象为一个通用的sendmail函数,每个服务都具有相同的params和相同的返回值。这意味着对于每个电子邮件服务(Mailchimp、SendGrid…),我必须编写一个函数,该函数具有相同的JSDoc,描述相同的@params和相同的@returns 是否有有效的JSDoc语法可用于函数的@typedef或类似语法,其中不在每个函数上方声明@params和@returns,只需描述类型即可? …不禁用ESLint的额外积分有一种方法可以定义它。对于

我正在连接多个电子邮件工具,并将它们的API抽象为一个通用的
sendmail
函数,每个服务都具有相同的
params
和相同的
返回值。这意味着对于每个电子邮件服务(Mailchimp、SendGrid…),我必须编写一个函数,该函数具有相同的JSDoc,描述相同的
@params
和相同的
@returns

是否有有效的JSDoc语法可用于函数的
@typedef
或类似语法,其中不在每个函数上方声明
@params
@returns
,只需描述类型即可?


…不禁用ESLint的额外积分有一种方法可以定义它。对于函数,使用与
@typedef
等效的

/**
*@callback sendmail
*@param{string}到
*@param{string}体
*@返回{boolean}以指示成功或失败
*/
然后,您可以使用
sendmail
作为一种类型:

/**
*@param{sendmail}sender-用于发送电子邮件的函数
*/
函数createEmailService(发件人){…}
问题是没有一个好的方法来指定函数的类型,因为函数上的
@type
被解释为函数的返回类型,而不是整个函数定义。所以像下面这样的东西不起作用

/**
*@type{sendmail}
*/
函数mailSender(收件人,正文){…}
您可以让它与以下内容一起工作,但这不是一个很好的解决方案。我仍在寻找更好的解决方案

/**
*@type{sendmail}
*/
让邮件发送人
mailchimpEmailSender=函数(收件人,正文){…}
更新: 我已经发现,如果将函数声明包装在parens中,似乎允许将
@type
应用于变量,而不是函数声明

/**
*@type{sendmail}
*/
常量mailSender=(函数(to,body){…})
这是我最喜欢的解决方案,因为它允许您使用适当的变量声明关键字。唯一的缺点是,它要求您记住添加严格来说不必要的代码