跳到主要内容

WriteColumns

type WriteColumns =
| {
kind: "whole_row";
}
| {
kind: "unknown";
}
| {
kind: "columns";
names: readonly string[];
};

Defined in: packages/rxdb-plugin-working-tree/src/working-tree/write-entry-matrix.ts:50

这次写碰了哪些列

Union Members​

Type Literal​

{
kind: "whole_row";
}

整行被替换:批量写原语与 upsert 的形态,永远不是 untracked 子集

kind​

readonly kind: "whole_row";

判别位:整行替换


Type Literal​

{
kind: "unknown";
}

解析不出被写列:按「不是 untracked 子集」处理(fail-closed)

kind​

readonly kind: "unknown";

判别位:被写列解析不出


Type Literal​

{
kind: "columns";
names: readonly string[];
}

明确的被写列名集合;空数组即语义 no-op

kind​

readonly kind: "columns";

判别位:被写列已知

names​

readonly names: readonly string[];

被写的列名;空数组即语义 no-op,与 whole_row 的结论相反

Remarks​

三态而不是「一个可能为空的数组」:whole_row(整行替换)与 columns: [](一列都没写) 语义相反,unknown(解析不出)与两者都不同。压成数组之后 [] 要同时表达三件事, 而其中两件的正确结论相反。