定义不带“ as”关键字的具体函数返回类型

时间:2019-11-22 10:50:31

标签: typescript typescript-types

我有两种基本类型UserResponseLogoutUserResponse和这两种类型ApiResult的一种常见类型。

export type UserResponse = { user: number };
export type LogoutUserResponse = { logout: boolean };
export type ApiResult = UserResponse | LogoutUserResponse;

如何为结果fn2和fn3指定返回类型。

const fn = (): ApiResult => ({ user: 2 }); 
const fn2 = (): UserResponse => fn() as UserResponse;
const fn3 = (): LogoutUserResponse => fn() as LogoutUserResponse;

如果我清除as UserResponse,编译器会说:

  

类型'ApiResult'不能分配给类型'UserResponse'。     “ LogoutUserResponse”类型缺少属性“ user”,但在“ UserResponse”类型中必需。

我想泛型应该可以帮助我,但我不知道如何。

0 个答案:

没有答案