【发布时间】:2020-06-17 22:27:10
【问题描述】:
我正在寻找一种安全的方法来创建这样的键控对象:
interface Statuses {
WAITING: 'WAITING';
IN_PROGRESS: 'IN_PROGRESS';
RESOLVED: 'RESOLVED';
}
type StatusKeys = keyof Statuses;
const STATUS: Statuses = {
WAITING: 'WAITING',
IN_PROGRESS: 'IN_PROGRESS',
RESOLVED: 'RESOLVED',
};
但是我觉得这样设置有点不舒服和多余,需要声明两次值。
有没有更好更安全的方法来做到这一点?
在我的 React 函数中是这样的:
const [status, setStatus] = useState<StatusKeys>(STATUS.WAITING);
const handleStatusChange = (
event: React.ChangeEvent<{ name?: string; value: unknown }>
) => {
const newStatusValue = event.target.value as StatusKeys;
setStatus(newStatusValue);
};
【问题讨论】:
标签: reactjs typescript object key type-safety