我目前用
建模我的初始化序列enum AuthStatus {
Initialising,
Authorised,
NoAuth,
}
但是现在我想添加一个概念,即一旦授权,我就知道用户是否是Admin。
换句话说,我想为4种状态建模
- 初始化
- 已授权(在这种情况下,无论是管理员还是非管理员)
- NoAuth
我要避免的是
let status: AuthStatus = AuthStatus.Initialising
let isAdmin: Bool = false
因为它代表6种状态其中2种是不可能的
歧视工会"是我需要的线索
enum AuthStatus {
Initialising,
Authorised,
NoAuth,
}
type I = {
status: AuthStatus.Initialising
}
type A = {
status: AuthStatus.Authorised,
isAdmin: boolean
}
type N = {
status: AuthStatus.NoAuth
}
type AuthProcess = I | A | N