假设你有类似的类型:
type T<E> = {| p: E |}
是否有办法为E
提供删除属性p
的特定参数。
我的直觉是void
应该这样做,但是当我尝试
const a: T<void> = {}
流程抱怨p
未定义。它仅在我专门指定p
:
const b: T<void> = { p: undefined }
有没有办法用这种方式关闭某些属性?
如果要为redux操作
创建泛型类型别名,这将非常有用type Action<T: string, P, M> = {|
type: T,
payload: P,
meta: M
|}
具体行动的类型为
type SomeAction = Action<'SOME_ACTION', SomePayload, SomeMeta>
但是,操作通常不包含meta
信息。能够为这些操作使用相同的通用基类型会很好。
type NoMetaAction = Action<'NO_META', NoMetaPayload, void>
这是别的,然后meta
是可选的。如果某个操作类型带有meta
信息而不是它始终带有信息,反之亦然。