首页 > 解决方案 > 声明接口而不是类型

问题描述

export type MessageGroups = {
    [id: string]: MessageGroupModel
};

export interface MessageGroupModel {
    groupId: string;
    memberIds: string[];
    messages: ChatMessageModel[];
}

用法是这样的:

async handleFullMessageGroupUpdate(newMessageGroup: MessageGroupModel) {
    let messageGroups: MessageGroups = await this.storage.get(StorageKeys.MESSAGES);
    if (!messageGroups) {
      messageGroups = {}
    }
    if (!messageGroups[newMessageGroup.groupId]) {
      messageGroups[newMessageGroup.groupId] = newMessageGroup;
    } else {
      messageGroups[newMessageGroup.groupId].memberIds = newMessageGroup.memberIds;
      messageGroups[newMessageGroup.groupId].memberProfiles = newMessageGroup.memberProfiles;
      messageGroups = this.mergeNewGroupMessages(messageGroups,
        newMessageGroup.messages, newMessageGroup.groupId, newMessageGroup.lastMessageUpdateTime);
    }   
  }

export type MessageGroups我不清楚声明。我不能用interface这里代替type吗?

标签: javascripttypescript

解决方案


推荐阅读