Javascript 可重用函数接口的JSDoc
我正在连接多个电子邮件工具,并将它们的API抽象为一个通用的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的额外积分有一种方法可以定义它。对于
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){…})
这是我最喜欢的解决方案,因为它允许您使用适当的变量声明关键字。唯一的缺点是,它要求您记住添加严格来说不必要的代码