TypeScript:接受不同记录的类型



我目前用

建模我的初始化序列
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 

最新更新