typescript - 如何根据 switch case 为 TypeScript 中的对象分配类型
问题描述
我正在使用 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
会有所帮助(例如,从哪里来type
,data
从哪里来,它们看起来像什么?)。通常,您可以使用标记联合、对象类型、记录类型或许多其他方式来声明两种类型之间的关系。
推荐阅读
- python - 在 Pandas 中拆垛
- java - 带有java home的maven版本命令
- php - PHP - 删除 Cloudinary 派生图像
- linux - 无需工具的 Flash NodeMCU v3
- php - php - array_search 在循环中不起作用
- c# - 选择数据的最佳方式是什么
- javascript - 对象属性顺序和 JSON.stringify 相等
- asch-development - 如何持有一些资产直到合约完成?
- ios - 阻止 TableView backgroundView 越过每个部分的最后一个单元格?
- php - preg_replace UTF-8 不起作用