打字稿条件承诺结果类型

时间:2021-06-19 13:15:22

标签: typescript promise

export const GetUserFn = async <T extends 'FullUser' | 'User'>(
    { userName, mongoId}: QueryGetUserArgs,
    type: T
): Promise<
    typeof type extends 'User'
        ? ResolversTypes['GetUserResult']
        : GetFullUserSuccess | GetUserFailure

> => {
    if(type === "FullUser") {
        const result: GetFullUserSuccess = {};
        return result;
    }

我有一个获取用户的函数,它可以获取完整用户或普通用户。

我通过提供 user-type 告诉函数它应该获取哪个 type。现在我希望结果也被正确输入,也就是 "FullUser" 返回 GetFullUserSuccess | GetUserFailure,所以我使用了条件类型。

问题是打字稿显然不知道发生了什么: enter image description here

如何让类型正确计算?

0 个答案:

没有答案