【发布时间】:2021-10-21 15:52:13
【问题描述】:
我有一个方法叫saveTask
type Task = string;
enum Priority {
Low = "Low",
Medium = "Medium",
High = "High",
}
enum Label {
Low = "Low",
Med = "Med",
High = "High",
}
interface Item {
task: Task;
priority: Priority;
}
const saveTask = ({ task, priority }: Item) => {
const id = Date.now();
let label: Label;
if (priority === "Medium") {
label = Label.Med;
} else {
label = priority;
}
// dispatch(addItem({ task, priority, id, isActive: true, label }));
// handleClose();
};
这里的 `priority 是一个等于 "Low"、"Medium" 或 "High" 的值 根据优先级,我创建了一个称为标签的附加属性。标签可以是“低”、“中”或“高”
当我尝试说时在 else 块中
标签 = 优先级
这给了我一个错误
我该如何解决这个问题?
【问题讨论】:
-
枚举是 TypeScript 将其视为名义类型的少数事物之一,这意味着您不能只将一个分配给另一个。如果您以这种方式使用它们,那么您真的不需要枚举。像this code 这样的strongly typed
consts 怎么样?这对你有用吗?
标签: javascript reactjs typescript vue.js