跳到主要内容

createMessage()

function createMessage<T>(
type,
direction,
payload,
sequence
): MessageOfType<T>;

Defined in: types.ts:590

创建 RxDB DevTools 消息。

Type Parameters​

Type Parameter
T extends MessageType

Parameters​

ParameterTypeDescription
typeT消息类型;它同时决定了 direction 与 payload 的合法取值
directionMessageOfType<T>["direction"]该类型允许的方向
payloadMessageOfType<T>["payload"]该类型定义的载荷
sequencenumber单调递增的会话内序号,必须是非负安全整数

Returns​

MessageOfType<T>

与 type 精确对应的消息对象

Throws​

RangeError 当 sequence 不是非负安全整数时

Remarks​

出站侧的唯一真相源是 AnyDevToolsMessage:工厂的 direction/payload 由 type 推导而来,本包自己的 isDevToolsMessage 会接受本工厂的任何产出。 在此之前四个形参彼此独立,createMessage('DELETE_BRANCH', 'page-to-devtools', 123, -1) 能编译通过却会被自家 guard 判为非法。

sequence 无法在类型层排除负数,因此在运行时 fail-fast —— 让它流出去只会 变成一条被接收端静默丢弃的消息,现场与病因完全对不上。