当我向类型添加附加变量时,Typescript 不会警告我

问题描述 投票:0回答:1

我有这个

export enum ProfileFollowingViewModelType {
  Loading = 'FOLLOWING_LOADING',
  FollowingLoaded = 'FOLLOWING_LOADED',
}

export type ProfileFollowingViewModel =
  | {
      type: ProfileFollowingViewModelType.Loading;
    }
  | {
      type: ProfileFollowingViewModelType.FollowingLoaded;
      following: {
        id: string;
        username: string;
        profilePicture: string;
        followersCount: number;
        isFollowedByAuthUser: boolean;
        link: string;
      }[];
    };
export const createProfileFollowingViewModel =
  ({ of }: { of: string }) =>
  (rootState: AppState): ProfileFollowingViewModel => {
    const areFollowingLoading = selectAreFollowingLoading(of, rootState);
    const following = selectFollowingOf(of, rootState);
    if (areFollowingLoading)
      return { type: ProfileFollowingViewModelType.Loading };
    return {
      type: ProfileFollowingViewModelType.FollowingLoaded,
      following: following.map((f) => {
        const user = selectUser(f, rootState);
        return {
          id: user.id,
          username: user.username,
          profilePicture: user.profilePicture,
          followersCount: user.followersCount,
          isFollowedByAuthUser: user.isFollowedByAuthUser,
          link: `/u/${f}`,
        };
      }),
    };
  };

如果我在下面的映射中添加一个不在类型声明中的自定义变量,打字稿不会对我大喊大叫

这是因为类型联合吗?或者地图循环?

typescript
1个回答
0
投票

两者都不是,只要你提供了至少一个必需的属性,就不应该引发错误(对你大喊大叫,哈哈)。 Typescript 使用结构类型系统 - https://www.typescriptlang.org/docs/handbook/interfaces.html

© www.soinside.com 2019 - 2024. All rights reserved.