布尔值不填时解析为 false 而非 null

This commit is contained in:
2021-01-26 16:22:37 +08:00
parent a799681194
commit dac89497d0

View File

@@ -164,7 +164,7 @@ export class Field {
let obj = {}; let obj = {};
let isAllNullish = true; let isAllNullish = true;
for (const c of this.children) { for (const c of this.children) {
let value = c.check_is_null(row) ? null : c.parse_row(row); let value = c.parse_row(row);
if (c.is_array) { if (c.is_array) {
let arr: any[] = obj[c.name] || []; let arr: any[] = obj[c.name] || [];
if (this.constant_array_length || value) { if (this.constant_array_length || value) {
@@ -174,7 +174,7 @@ export class Field {
} else { } else {
obj[c.name] = value; obj[c.name] = value;
} }
isAllNullish = isAllNullish && value == null; isAllNullish = isAllNullish && c.check_is_null(row);
} }
return isAllNullish ? null : obj; return isAllNullish ? null : obj;
} }
@@ -183,7 +183,7 @@ export class Field {
protected get_cell_value(cell: RawTableCell, type: DataType) { protected get_cell_value(cell: RawTableCell, type: DataType) {
switch (type) { switch (type) {
case DataType.bool: case DataType.bool:
return cell && cell.v as boolean == true; return cell ? cell.v as boolean == true : false;
case DataType.int: case DataType.int:
return cell ? cell.v as number : 0; return cell ? cell.v as number : 0;
case DataType.float: case DataType.float: