如何根据 switch case 为 TypeScript 中的对象分配类型

How to assign a type to an object in TypeScript based on switch case

我正在使用 TypeScript 构建 React Native 应用程序。

我正在编写一个带有 switch case 的处理程序,如下所示:

export const handleMessageData = (dispatch: Dispatch, messageData: FCMMessage): void => {
  const { type, message_data } = messageData;
  const data = camelizeKeys(JSON.parse(message_data));
    switch (type) {
        case conditionOne:
          data.consumer = data.consumer.uuid;
          setHouses({ entities: { houses: { [data.uuid]: data } } });
        // ... more cases
        default:
          // ... do stuff
      }
    };

在每种情况下,我都知道 data 是哪种类型。我如何告诉打字稿?

伪代码:

case conditionOne:
  data: MyType;
  data.consumer = data.consumer.uuid;

更多关于 switch 的代码会有所帮助(例如,typedata 来自哪里,它们长什么样?)。通常,您可以使用标记联合、对象类型、记录类型或许多其他方式来声明两种类型之间的关系。