打字稿如何省略枚举值

qui*_*ppe 1 typescript reactjs

我得到了枚举

enum Status {
  Cancelled = 'cancelled',
  Completed = 'completed',
  Created = 'created'
}
Run Code Online (Sandbox Code Playgroud)

我想创建另一个仅包含 Completed 和 Created 值的枚举

enum StatusMinimal {
  Completed = 'completed',
  Created = 'created'
}
Run Code Online (Sandbox Code Playgroud)

我尝试使用 Omit 但它仅适用于类型。甚至可以用打字稿来做吗?

Ten*_*eff 5

您可以根据StatusExclude不需要的值定义属性/参数

function test(s: Exclude<Status, Status.Cancelled>): void {}


test(Status.Completed)
test(Status.Created)
test(Status.Cancelled) // not assignable
Run Code Online (Sandbox Code Playgroud)

操场