WebStorm:找不到名字'等待'在某些.ts文件上

时间:2018-01-29 23:04:58

标签: javascript node.js typescript webstorm

我在某些文件上遇到了关于webstorm的奇怪问题。我收到" TS2304:找不到名字'等待'"和" TS1005:','预期&#34 ;.这只发生在使用await / async语法的几个文件中的两个文件上。我试图使缓存无效,但这不起作用。我还尝试重启应用程序和计算机。到目前为止,没有任何工作。此外,它似乎没有异步的问题,只是没有等待。

以下是我收到此错误的方法声明之一的示例:

private async findUserByEmailAddress = (emailAddress): Promise<IGroupMemberModel> => {

    const user: IUserModel = await this.userRepository.findUserByEmailAddress(emailAddress);

    if (! user)
        Promise.reject(new NotFoundError("The specified user could not be found."))

    return user;
}

有人可以提供有关此问题可能原因的见解吗?

1 个答案:

答案 0 :(得分:5)

这不是IDE问题,这是一个语法问题。 async关键字应放在箭头函数的参数列表之前:

private findUserByEmailAddress = async (emailAddress): Promise<IGroupMemberModel> => { 
    ... 
}

修改

这是基于代码的完整工作示例,添加了缺少的类型:

interface IGroupMemberModel { }
interface IUserModel { }
class NotFoundError extends Error { }
class x {
    userRepository: {
        findUserByEmailAddress(emailAddress: any): Promise<IUserModel>;
    }
    private findUserByEmailAddress = async (emailAddress): Promise<IGroupMemberModel> => {

        const user: IUserModel = await this.userRepository.findUserByEmailAddress(emailAddress);

        if (!user)
            throw new NotFoundError("The specified user could not be found.");

        return user;
    }
}