我正在使用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;
答案 0 :(得分:1)
您的switch
周围的更多代码会有所帮助(例如type
和data
来自何处,它们看起来像什么?)。通常,您可以使用标记的联合,对象类型,记录类型或多种其他方式来声明两种类型之间的关系。