在“打字声明”中将函数声明为参数

时间:2018-06-05 15:08:59

标签: javascript visual-studio-code eslint typescript-typings

在我的globals.d.ts我导出多个参数也是函数的函数。下面是一个例子:

/**
 * Does something
 * @param {function(string): void} bar - a parameter
 * @returns {void}
 */
export function foo(bar: function(string): void): void;

ESLint显示多个错误,指出:JSDoc types can only be used inside documentation comments.。我尝试通过从函数中删除类型并仅在注释中声明它们来修复此错误,但随后参数的类型变为any (*)。我还尝试在"valid-jsdoc": "off"文件中添加.eslintrc.json规则,但没有成功。有没有办法在不丢失参数类型的情况下删除警告?

1 个答案:

答案 0 :(得分:1)

您无法将参数类型指定为function(string): void。在TypeScript中定义函数类型只是错误的语法 而不是:
export function foo(bar: function(string): void): void;
这样做:
export function foo(bar: (arg: string) => void): void;