In typescript, how to define type of async function
<p>I tried to define a type of async function, but failed in compilation, see below:</p>

<pre><code>interface SearchFn {
    async (subString: string): string;
}

class A {
    private Fn: SearchFn
    public async do():Promise&lt;string&gt; {
        await this.Fn("fds") // complain here: cannot invoke an expression whose type lacks a call signature
        return ''
    }
}
</code></pre>

<p>Can anyone help me work this out?</p>