小编Cha*_*and的帖子

使用非共享属性时,从对象的联合类型中省略共享属性会导致错误 (TypeScript)

我正在创建一个包装函数,它将refs属性传递给send函数,如下所示。用于创建我的状态机的事件类型被定义为基本接口{ refs: NodeRefs }和可能的事件对象的联合之间的交集,例如{ type: "EVENT_1" } | { type: "EVENT_2", context: MyContextType }

包装函数(useMachine在示例代码中)应该返回更新后的send函数,该函数需要一个refs省略键的事件对象。Omit当尝试将我的发送函数与联合类型中的任何非共享属性一起使用时,使用此处会导致错误,并且我并不 100% 清楚为什么或如何以不同的方式执行此操作。

enum States {
  Unchecked = "UNCHECKED",
  Checked = "CHECKED",
  Mixed = "MIXED"
}

enum Events {
  Toggle = "TOGGLE",
  Set = "SET",
  UpdateContext = "UPDATE_CONTEXT"
}

// Events for the state machine will be a union type a la TEvent, but all events
// will need a …
Run Code Online (Sandbox Code Playgroud)

typescript typescript-generics typescript-typings

1
推荐指数
1
解决办法
459
查看次数