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
| Parameter | Type | Description |
|---|---|---|
type | T | 消息类型;它同时决定了 direction 与 payload 的合法取值 |
direction | MessageOfType<T>["direction"] | 该类型允许的方向 |
payload | MessageOfType<T>["payload"] | 该类型定义的载荷 |
sequence | number | 单调递增的会话内序号,必须是非负安全整数 |
Returns
与 type 精确对应的消息对象
Throws
RangeError 当 sequence 不是非负安全整数时
Remarks
出站侧的唯一真相源是 AnyDevToolsMessage:工厂的 direction/payload
由 type 推导而来,本包自己的 isDevToolsMessage 会接受本工厂的任何产出。
在此之前四个形参彼此独立,createMessage('DELETE_BRANCH', 'page-to-devtools', 123, -1)
能编译通过却会被自家 guard 判为非法。
sequence 无法在类型层排除负数,因此在运行时 fail-fast —— 让它流出去只会
变成一条被接收端静默丢弃的消息,现场与病因完全对不上。