簡體   English   中英

如何基於開關大小寫為TypeScript中的對象分配類型

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

我正在用TypeScript構建一個React Native應用程序。

我正在用這樣的開關盒編寫處理程序:

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來自何處以及它們看起來如何?)。 通常,您可以使用標記的聯合,對象類型,記錄類型或多種其他方式來聲明兩種類型之間的關系。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM