我试图定义一种异步函数,但编译失败,见下文:
interface SearchFn { async (subString: string): string; } class A { private Fn: SearchFn public async do():Promise<string> { await this.Fn("fds") // complain here: cannot invoke an expression whose type lacks a call signature return '' } }
谁能帮我解决这个问题?
发现这个搜索如何为异步箭头函数声明“typedef”。
如果你只是将函数的返回类型声明为 Promise,它就可以工作:
interface SearchFn { (subString: string): Promise<boolean>; }
或作为类型声明:
type SearchFn = (subString: string) => Promise<boolean>;
Microsoft 的 TS Linter 将推荐第二种语法。