我使用ts-pattern进行模式匹配。
enum PossibleSelections {
EQUAL = 'equal',
AVERAGE = 'average',
LOWEST = 'lowest',
CUSTOM = 'custom',
}
和一个选择处理程序
const handleOnSelect = (newSelection: PossibleSelections) => {
match({ newSelection })
.with({ newSelection: PossibleSelections.CUSTOM }, () => {
...do something
})
.with({ newSelection: PossibleSelections.AVERAGE }, () => {
...do something
})
.with({ newSelection: PossibleSelections.LOWEST }, () => {
...do something
})
.with({ newSelection: PossibleSelections.EQUAL }, () => {
...do something
});
};
但是,没有任何“做些什么”的代码运行。我已经记录了newSelection
,可以看到它输出了选择。如果我选择自定义并运行console.log(newSelection, PossibleSelections.CUSTOM, typeof newSelection, typeof PossibleSelections.CUSTOM)
,我得到custom custom string string
。
1条答案
按热度按时间qpgpyjmq1#
由于不清楚
match
接受什么作为参数,我假设with
表示条件,您可以尝试以下操作如果您希望通过传入键来返回值,那么可以调整
str
助手函数,将键直接传递给enum对象TypeScript Playground