如何根据 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
的代码会有所帮助(例如,type
和 data
来自哪里,它们长什么样?)。通常,您可以使用标记联合、对象类型、记录类型或许多其他方式来声明两种类型之间的关系。
我正在使用 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
的代码会有所帮助(例如,type
和 data
来自哪里,它们长什么样?)。通常,您可以使用标记联合、对象类型、记录类型或许多其他方式来声明两种类型之间的关系。