如何在接口中将函数声明为async



我有一个接口和一个实现方法的类,我现在还没有找到问题的答案。我在接口中定义了一个函数myAsyncFunction(),我想让它异步

export interface State {
state: Class;
myAsyncFunction(): any;
}

对于调用者来说,异步函数只是一个返回promise的函数:

export interface State {
state: string;
myAsyncFunction(): Promise<any>;
}
const state : State = {
state: 'foo',
myAsyncFunction: async () => 'bar'
};

TypeScript不关心函数是否使用async关键字。它只关心它一个函数,它需要什么参数,以及返回值是什么

async关键字在该上下文中唯一的意义是,函数将返回一个promise…,它将与any匹配。

函数在返回Promise时是异步的。以下是如何在接口中定义异步函数的示例:

interface Foo {
bar: () => Promise<void>
}

您可以使用任何想要的返回类型,当然也可以使用任何需要的参数,而不是void,例如:

interface Foo {
bar: (test: string) => Promise<boolean>
}

最新更新