diff --git a/.changeset/spicy-shelties-ramble.md b/.changeset/spicy-shelties-ramble.md new file mode 100644 index 000000000000..5120b5b99eb4 --- /dev/null +++ b/.changeset/spicy-shelties-ramble.md @@ -0,0 +1,8 @@ +--- +"@fluidframework/tree": minor +"fluid-framework": minor +"__section": tree +--- +Update TableSchema APIs (alpha) to accept SchemaFactoryBeta in addition to SchemaFactoryAlpha + +Makes the [TableSchema](https://fluidframework.com/docs/api/fluid-framework/tableschema-namespace) APIs more flexible, and prepares them for future promotion to beta themselves. diff --git a/packages/dds/tree/api-report/tree.alpha.api.md b/packages/dds/tree/api-report/tree.alpha.api.md index 2051adaf35af..217e4da5b5d5 100644 --- a/packages/dds/tree/api-report/tree.alpha.api.md +++ b/packages/dds/tree/api-report/tree.alpha.api.md @@ -1067,9 +1067,9 @@ export namespace System_TableSchema { // @sealed @system export type ColumnSchemaBase = ReturnType>; // @system - export type CreateColumnOptionsBase = OptionsWithSchemaFactory & OptionsWithCellSchema; + export type CreateColumnOptionsBase = OptionsWithSchemaFactory & OptionsWithCellSchema; // @system - export function createColumnSchema(inputSchemaFactory: SchemaFactoryAlpha, cellSchema: TCellSchema, propsSchema: TPropsSchema): TreeNodeSchemaClass, "Column">, NodeKind.Object, TreeNode & TableSchema.Column & WithType, "Column">, NodeKind, unknown>, object & { + export function createColumnSchema(inputSchemaFactory: SchemaFactoryBeta, cellSchema: TCellSchema, propsSchema: TPropsSchema): TreeNodeSchemaClass, "Column">, NodeKind.Object, TreeNode & TableSchema.Column & WithType, "Column">, NodeKind, unknown>, object & { readonly id?: string | undefined; } & (FieldHasDefault extends true ? { props?: InsertableTreeFieldFromImplicitField | undefined; @@ -1080,9 +1080,9 @@ export namespace System_TableSchema { readonly id: FieldSchema_2, unknown>; }>; // @system - export type CreateRowOptionsBase = OptionsWithSchemaFactory & OptionsWithCellSchema; + export type CreateRowOptionsBase = OptionsWithSchemaFactory & OptionsWithCellSchema; // @sealed - export function createRowSchema(inputSchemaFactory: SchemaFactoryAlpha, cellSchema: TCellSchema, propsSchema: TPropsSchema): TreeNodeSchemaClass, "Row">, NodeKind.Object, TreeNode & TableSchema.Row & WithType, "Row">, NodeKind, unknown>, object & { + export function createRowSchema(inputSchemaFactory: SchemaFactoryBeta, cellSchema: TCellSchema, propsSchema: TPropsSchema): TreeNodeSchemaClass, "Row">, NodeKind.Object, TreeNode & TableSchema.Row & WithType, "Row">, NodeKind, unknown>, object & { readonly id?: string | undefined; readonly cells: (InsertableTypedNode_2, "Row.cells">, NodeKind.Record, TreeRecordNode_2 & WithType, "Row.cells">, NodeKind.Record, unknown>, RecordNodeInsertableData_2, true, TCellSchema, undefined>> | undefined) & InsertableTypedNode_2, "Row.cells">, NodeKind.Record, TreeRecordNode_2 & WithType, "Row.cells">, NodeKind.Record, unknown>, RecordNodeInsertableData_2, true, TCellSchema, undefined>>; } & (FieldHasDefault extends true ? { @@ -1092,10 +1092,10 @@ export namespace System_TableSchema { }), true, { readonly props: TPropsSchema; readonly id: FieldSchema_2, unknown>; - readonly cells: FieldSchemaAlpha_2, "Row.cells">, NodeKind.Record, TreeRecordNode_2 & WithType, "Row.cells">, NodeKind.Record, unknown>, RecordNodeInsertableData_2, true, TCellSchema, undefined>, unknown>; + readonly cells: FieldSchema_2, "Row.cells">, NodeKind.Record, TreeRecordNode_2 & WithType, "Row.cells">, NodeKind.Record, unknown>, RecordNodeInsertableData_2, true, TCellSchema, undefined>, unknown>; }>; // @system - export function createTableSchema, const TRowSchema extends RowSchemaBase>(inputSchemaFactory: SchemaFactoryAlpha, _cellSchema: TCellSchema, columnSchema: TColumnSchema, rowSchema: TRowSchema): TreeNodeSchemaCore_2, "Table">, NodeKind.Object, true, { + export function createTableSchema, const TRowSchema extends RowSchemaBase>(inputSchemaFactory: SchemaFactoryBeta, _cellSchema: TCellSchema, columnSchema: TColumnSchema, rowSchema: TRowSchema): TreeNodeSchemaCore_2, "Table">, NodeKind.Object, true, { readonly rows: TreeNodeSchemaClass, "Table.rows">, NodeKind.Array, TreeArrayNode : TreeNodeFromImplicitAllowedTypes, [TRowSchema] extends [ImplicitAllowedTypes] ? InsertableTreeNodeFromImplicitAllowedTypes : never, ReadonlyArrayNode_2> & WithType, "Table.rows">, NodeKind.Array, unknown>, Iterable>, true, TRowSchema, undefined>; readonly columns: TreeNodeSchemaClass, "Table.columns">, NodeKind.Array, TreeArrayNode : TreeNodeFromImplicitAllowedTypes, [TColumnSchema] extends [ImplicitAllowedTypes] ? InsertableTreeNodeFromImplicitAllowedTypes : never, ReadonlyArrayNode_2> & WithType, "Table.columns">, NodeKind.Array, unknown>, Iterable>, true, TColumnSchema, undefined>; }, object & { @@ -1117,13 +1117,13 @@ export namespace System_TableSchema { readonly cell: TCellSchema; } // @system - export interface OptionsWithSchemaFactory { + export interface OptionsWithSchemaFactory { readonly schemaFactory: TSchemaFactory; } // @sealed @system export type RowSchemaBase = ReturnType>; // @system - export type TableFactoryOptionsBase = OptionsWithSchemaFactory & OptionsWithCellSchema; + export type TableFactoryOptionsBase = OptionsWithSchemaFactory & OptionsWithCellSchema; // @sealed @system export type TableSchemaBase, TRow extends RowSchemaBase> = ReturnType>; } @@ -1227,8 +1227,8 @@ export namespace TableSchema { get props(): TreeFieldFromImplicitField; set props(value: InsertableTreeFieldFromImplicitField); } - export function column(params: System_TableSchema.CreateColumnOptionsBase, TCell>): System_TableSchema.ColumnSchemaBase; - export function column(params: System_TableSchema.CreateColumnOptionsBase, TCell> & { + export function column(params: System_TableSchema.CreateColumnOptionsBase, TCell>): System_TableSchema.ColumnSchemaBase; + export function column(params: System_TableSchema.CreateColumnOptionsBase, TCell> & { readonly props: TProps; }): System_TableSchema.ColumnSchemaBase; export interface InsertColumnsParameters { @@ -1255,8 +1255,8 @@ export namespace TableSchema { setCell(column: Column, value: InsertableTreeNodeFromImplicitAllowedTypes): void; setCell(columnId: string, value: InsertableTreeNodeFromImplicitAllowedTypes): void; } - export function row(params: System_TableSchema.CreateRowOptionsBase, TCell>): System_TableSchema.RowSchemaBase; - export function row(params: System_TableSchema.CreateRowOptionsBase, TCell> & { + export function row(params: System_TableSchema.CreateRowOptionsBase, TCell>): System_TableSchema.RowSchemaBase; + export function row(params: System_TableSchema.CreateRowOptionsBase, TCell> & { readonly props: TProps; }): System_TableSchema.RowSchemaBase; export interface SetCellParameters { @@ -1281,14 +1281,14 @@ export namespace TableSchema { readonly rows: TreeArrayNode; setCell(params: SetCellParameters): void; } - export function table(params: System_TableSchema.TableFactoryOptionsBase, TCell>): System_TableSchema.TableSchemaBase, System_TableSchema.RowSchemaBase>; - export function table>(params: System_TableSchema.TableFactoryOptionsBase, TCell> & { + export function table(params: System_TableSchema.TableFactoryOptionsBase, TCell>): System_TableSchema.TableSchemaBase, System_TableSchema.RowSchemaBase>; + export function table>(params: System_TableSchema.TableFactoryOptionsBase, TCell> & { readonly column: TColumn; }): System_TableSchema.TableSchemaBase>; - export function table>(params: System_TableSchema.TableFactoryOptionsBase, TCell> & { + export function table>(params: System_TableSchema.TableFactoryOptionsBase, TCell> & { readonly row: TRow; }): System_TableSchema.TableSchemaBase, TRow>; - export function table, const TRow extends System_TableSchema.RowSchemaBase>(params: System_TableSchema.TableFactoryOptionsBase, TCell> & { + export function table, const TRow extends System_TableSchema.RowSchemaBase>(params: System_TableSchema.TableFactoryOptionsBase, TCell> & { readonly column: TColumn; readonly row: TRow; }): System_TableSchema.TableSchemaBase; diff --git a/packages/dds/tree/src/tableSchema.ts b/packages/dds/tree/src/tableSchema.ts index 1ee9d1538140..7c008685942c 100644 --- a/packages/dds/tree/src/tableSchema.ts +++ b/packages/dds/tree/src/tableSchema.ts @@ -13,7 +13,7 @@ import { type InsertableObjectFromSchemaRecord, type InsertableTreeNodeFromImplicitAllowedTypes, type NodeKind, - type SchemaFactoryAlpha, + type SchemaFactoryBeta, type ScopedSchemaName, TreeArrayNode, type TreeNode, @@ -119,7 +119,7 @@ export namespace System_TableSchema { * @privateRemarks This interface primarily exists to provide a single home for property documentation. * @system @alpha */ - export interface OptionsWithSchemaFactory { + export interface OptionsWithSchemaFactory { /** * Schema factory with which the Column schema will be associated. * @remarks Can be used to associate the resulting schema with an existing {@link SchemaFactory.scope|scope}. @@ -148,7 +148,7 @@ export namespace System_TableSchema { * @system @alpha */ export type CreateColumnOptionsBase< - TSchemaFactory extends SchemaFactoryAlpha = SchemaFactoryAlpha, + TSchemaFactory extends SchemaFactoryBeta = SchemaFactoryBeta, TCell extends ImplicitAllowedTypes = ImplicitAllowedTypes, > = OptionsWithSchemaFactory & OptionsWithCellSchema; @@ -162,11 +162,11 @@ export namespace System_TableSchema { const TCellSchema extends ImplicitAllowedTypes, const TPropsSchema extends ImplicitFieldSchema, >( - inputSchemaFactory: SchemaFactoryAlpha, + inputSchemaFactory: SchemaFactoryBeta, cellSchema: TCellSchema, propsSchema: TPropsSchema, ) { - const schemaFactory = inputSchemaFactory.scopedFactoryAlpha(tableSchemaFactorySubScope); + const schemaFactory = inputSchemaFactory.scopedFactory(tableSchemaFactorySubScope); type Scope = ScopedSchemaName; type CellValueType = TreeNodeFromImplicitAllowedTypes; @@ -320,7 +320,7 @@ export namespace System_TableSchema { * @system @alpha */ export type CreateRowOptionsBase< - TSchemaFactory extends SchemaFactoryAlpha = SchemaFactoryAlpha, + TSchemaFactory extends SchemaFactoryBeta = SchemaFactoryBeta, TCell extends ImplicitAllowedTypes = ImplicitAllowedTypes, > = OptionsWithSchemaFactory & OptionsWithCellSchema; @@ -334,11 +334,11 @@ export namespace System_TableSchema { const TCellSchema extends ImplicitAllowedTypes, const TPropsSchema extends ImplicitFieldSchema, >( - inputSchemaFactory: SchemaFactoryAlpha, + inputSchemaFactory: SchemaFactoryBeta, cellSchema: TCellSchema, propsSchema: TPropsSchema, ) { - const schemaFactory = inputSchemaFactory.scopedFactoryAlpha(tableSchemaFactorySubScope); + const schemaFactory = inputSchemaFactory.scopedFactory(tableSchemaFactorySubScope); type Scope = ScopedSchemaName; type CellValueType = TreeNodeFromImplicitAllowedTypes; @@ -538,7 +538,7 @@ export namespace System_TableSchema { * @system @alpha */ export type TableFactoryOptionsBase< - TSchemaFactory extends SchemaFactoryAlpha = SchemaFactoryAlpha, + TSchemaFactory extends SchemaFactoryBeta = SchemaFactoryBeta, TCell extends ImplicitAllowedTypes = ImplicitAllowedTypes, > = OptionsWithSchemaFactory & OptionsWithCellSchema; @@ -553,12 +553,12 @@ export namespace System_TableSchema { const TColumnSchema extends ColumnSchemaBase, const TRowSchema extends RowSchemaBase, >( - inputSchemaFactory: SchemaFactoryAlpha, + inputSchemaFactory: SchemaFactoryBeta, _cellSchema: TCellSchema, columnSchema: TColumnSchema, rowSchema: TRowSchema, ) { - const schemaFactory = inputSchemaFactory.scopedFactoryAlpha(tableSchemaFactorySubScope); + const schemaFactory = inputSchemaFactory.scopedFactory(tableSchemaFactorySubScope); type Scope = ScopedSchemaName; type CellValueType = TreeNodeFromImplicitAllowedTypes; @@ -579,7 +579,7 @@ export namespace System_TableSchema { * The Table schema */ class Table - extends schemaFactory.objectAlpha("Table", tableFields, { + extends schemaFactory.object("Table", tableFields, { // Will make it easier to evolve this schema in the future. allowUnknownOptionalFields: true, }) @@ -1243,7 +1243,7 @@ export namespace TableSchema { const TScope extends string | undefined, const TCell extends ImplicitAllowedTypes, >( - params: System_TableSchema.CreateColumnOptionsBase, TCell>, + params: System_TableSchema.CreateColumnOptionsBase, TCell>, ): System_TableSchema.ColumnSchemaBase; /** * Factory for creating new table column schema. @@ -1257,7 +1257,7 @@ export namespace TableSchema { const TCell extends ImplicitAllowedTypes, const TProps extends ImplicitFieldSchema, >( - params: System_TableSchema.CreateColumnOptionsBase, TCell> & { + params: System_TableSchema.CreateColumnOptionsBase, TCell> & { /** * Optional column properties. */ @@ -1366,7 +1366,7 @@ export namespace TableSchema { const TScope extends string | undefined, const TCell extends ImplicitAllowedTypes, >( - params: System_TableSchema.CreateRowOptionsBase, TCell>, + params: System_TableSchema.CreateRowOptionsBase, TCell>, ): System_TableSchema.RowSchemaBase; /** * Factory for creating new table row schema. @@ -1380,7 +1380,7 @@ export namespace TableSchema { const TCell extends ImplicitAllowedTypes, const TProps extends ImplicitFieldSchema, >( - params: System_TableSchema.CreateRowOptionsBase, TCell> & { + params: System_TableSchema.CreateRowOptionsBase, TCell> & { /** * Optional row properties. */ @@ -1644,7 +1644,7 @@ export namespace TableSchema { const TScope extends string | undefined, const TCell extends ImplicitAllowedTypes, >( - params: System_TableSchema.TableFactoryOptionsBase, TCell>, + params: System_TableSchema.TableFactoryOptionsBase, TCell>, ): System_TableSchema.TableSchemaBase< TScope, TCell, @@ -1663,7 +1663,7 @@ export namespace TableSchema { const TCell extends ImplicitAllowedTypes, const TColumn extends System_TableSchema.ColumnSchemaBase, >( - params: System_TableSchema.TableFactoryOptionsBase, TCell> & { + params: System_TableSchema.TableFactoryOptionsBase, TCell> & { readonly column: TColumn; }, ): System_TableSchema.TableSchemaBase< @@ -1684,7 +1684,7 @@ export namespace TableSchema { const TCell extends ImplicitAllowedTypes, const TRow extends System_TableSchema.RowSchemaBase, >( - params: System_TableSchema.TableFactoryOptionsBase, TCell> & { + params: System_TableSchema.TableFactoryOptionsBase, TCell> & { readonly row: TRow; }, ): System_TableSchema.TableSchemaBase< @@ -1707,7 +1707,7 @@ export namespace TableSchema { const TColumn extends System_TableSchema.ColumnSchemaBase, const TRow extends System_TableSchema.RowSchemaBase, >( - params: System_TableSchema.TableFactoryOptionsBase, TCell> & { + params: System_TableSchema.TableFactoryOptionsBase, TCell> & { readonly column: TColumn; readonly row: TRow; }, diff --git a/packages/framework/fluid-framework/api-report/fluid-framework.alpha.api.md b/packages/framework/fluid-framework/api-report/fluid-framework.alpha.api.md index 2f7e18e94e64..1ce3f128740a 100644 --- a/packages/framework/fluid-framework/api-report/fluid-framework.alpha.api.md +++ b/packages/framework/fluid-framework/api-report/fluid-framework.alpha.api.md @@ -1445,9 +1445,9 @@ export namespace System_TableSchema { // @sealed @system export type ColumnSchemaBase = ReturnType>; // @system - export type CreateColumnOptionsBase = OptionsWithSchemaFactory & OptionsWithCellSchema; + export type CreateColumnOptionsBase = OptionsWithSchemaFactory & OptionsWithCellSchema; // @system - export function createColumnSchema(inputSchemaFactory: SchemaFactoryAlpha, cellSchema: TCellSchema, propsSchema: TPropsSchema): TreeNodeSchemaClass, "Column">, NodeKind.Object, TreeNode & TableSchema.Column & WithType, "Column">, NodeKind, unknown>, object & { + export function createColumnSchema(inputSchemaFactory: SchemaFactoryBeta, cellSchema: TCellSchema, propsSchema: TPropsSchema): TreeNodeSchemaClass, "Column">, NodeKind.Object, TreeNode & TableSchema.Column & WithType, "Column">, NodeKind, unknown>, object & { readonly id?: string | undefined; } & (FieldHasDefault extends true ? { props?: InsertableTreeFieldFromImplicitField | undefined; @@ -1458,9 +1458,9 @@ export namespace System_TableSchema { readonly id: FieldSchema_2, unknown>; }>; // @system - export type CreateRowOptionsBase = OptionsWithSchemaFactory & OptionsWithCellSchema; + export type CreateRowOptionsBase = OptionsWithSchemaFactory & OptionsWithCellSchema; // @sealed - export function createRowSchema(inputSchemaFactory: SchemaFactoryAlpha, cellSchema: TCellSchema, propsSchema: TPropsSchema): TreeNodeSchemaClass, "Row">, NodeKind.Object, TreeNode & TableSchema.Row & WithType, "Row">, NodeKind, unknown>, object & { + export function createRowSchema(inputSchemaFactory: SchemaFactoryBeta, cellSchema: TCellSchema, propsSchema: TPropsSchema): TreeNodeSchemaClass, "Row">, NodeKind.Object, TreeNode & TableSchema.Row & WithType, "Row">, NodeKind, unknown>, object & { readonly id?: string | undefined; readonly cells: (InsertableTypedNode_2, "Row.cells">, NodeKind.Record, TreeRecordNode_2 & WithType, "Row.cells">, NodeKind.Record, unknown>, RecordNodeInsertableData_2, true, TCellSchema, undefined>> | undefined) & InsertableTypedNode_2, "Row.cells">, NodeKind.Record, TreeRecordNode_2 & WithType, "Row.cells">, NodeKind.Record, unknown>, RecordNodeInsertableData_2, true, TCellSchema, undefined>>; } & (FieldHasDefault extends true ? { @@ -1470,10 +1470,10 @@ export namespace System_TableSchema { }), true, { readonly props: TPropsSchema; readonly id: FieldSchema_2, unknown>; - readonly cells: FieldSchemaAlpha_2, "Row.cells">, NodeKind.Record, TreeRecordNode_2 & WithType, "Row.cells">, NodeKind.Record, unknown>, RecordNodeInsertableData_2, true, TCellSchema, undefined>, unknown>; + readonly cells: FieldSchema_2, "Row.cells">, NodeKind.Record, TreeRecordNode_2 & WithType, "Row.cells">, NodeKind.Record, unknown>, RecordNodeInsertableData_2, true, TCellSchema, undefined>, unknown>; }>; // @system - export function createTableSchema, const TRowSchema extends RowSchemaBase>(inputSchemaFactory: SchemaFactoryAlpha, _cellSchema: TCellSchema, columnSchema: TColumnSchema, rowSchema: TRowSchema): TreeNodeSchemaCore_2, "Table">, NodeKind.Object, true, { + export function createTableSchema, const TRowSchema extends RowSchemaBase>(inputSchemaFactory: SchemaFactoryBeta, _cellSchema: TCellSchema, columnSchema: TColumnSchema, rowSchema: TRowSchema): TreeNodeSchemaCore_2, "Table">, NodeKind.Object, true, { readonly rows: TreeNodeSchemaClass, "Table.rows">, NodeKind.Array, TreeArrayNode : TreeNodeFromImplicitAllowedTypes, [TRowSchema] extends [ImplicitAllowedTypes] ? InsertableTreeNodeFromImplicitAllowedTypes : never, ReadonlyArrayNode_2> & WithType, "Table.rows">, NodeKind.Array, unknown>, Iterable>, true, TRowSchema, undefined>; readonly columns: TreeNodeSchemaClass, "Table.columns">, NodeKind.Array, TreeArrayNode : TreeNodeFromImplicitAllowedTypes, [TColumnSchema] extends [ImplicitAllowedTypes] ? InsertableTreeNodeFromImplicitAllowedTypes : never, ReadonlyArrayNode_2> & WithType, "Table.columns">, NodeKind.Array, unknown>, Iterable>, true, TColumnSchema, undefined>; }, object & { @@ -1495,13 +1495,13 @@ export namespace System_TableSchema { readonly cell: TCellSchema; } // @system - export interface OptionsWithSchemaFactory { + export interface OptionsWithSchemaFactory { readonly schemaFactory: TSchemaFactory; } // @sealed @system export type RowSchemaBase = ReturnType>; // @system - export type TableFactoryOptionsBase = OptionsWithSchemaFactory & OptionsWithCellSchema; + export type TableFactoryOptionsBase = OptionsWithSchemaFactory & OptionsWithCellSchema; // @sealed @system export type TableSchemaBase, TRow extends RowSchemaBase> = ReturnType>; } @@ -1605,8 +1605,8 @@ export namespace TableSchema { get props(): TreeFieldFromImplicitField; set props(value: InsertableTreeFieldFromImplicitField); } - export function column(params: System_TableSchema.CreateColumnOptionsBase, TCell>): System_TableSchema.ColumnSchemaBase; - export function column(params: System_TableSchema.CreateColumnOptionsBase, TCell> & { + export function column(params: System_TableSchema.CreateColumnOptionsBase, TCell>): System_TableSchema.ColumnSchemaBase; + export function column(params: System_TableSchema.CreateColumnOptionsBase, TCell> & { readonly props: TProps; }): System_TableSchema.ColumnSchemaBase; export interface InsertColumnsParameters { @@ -1633,8 +1633,8 @@ export namespace TableSchema { setCell(column: Column, value: InsertableTreeNodeFromImplicitAllowedTypes): void; setCell(columnId: string, value: InsertableTreeNodeFromImplicitAllowedTypes): void; } - export function row(params: System_TableSchema.CreateRowOptionsBase, TCell>): System_TableSchema.RowSchemaBase; - export function row(params: System_TableSchema.CreateRowOptionsBase, TCell> & { + export function row(params: System_TableSchema.CreateRowOptionsBase, TCell>): System_TableSchema.RowSchemaBase; + export function row(params: System_TableSchema.CreateRowOptionsBase, TCell> & { readonly props: TProps; }): System_TableSchema.RowSchemaBase; export interface SetCellParameters { @@ -1659,14 +1659,14 @@ export namespace TableSchema { readonly rows: TreeArrayNode; setCell(params: SetCellParameters): void; } - export function table(params: System_TableSchema.TableFactoryOptionsBase, TCell>): System_TableSchema.TableSchemaBase, System_TableSchema.RowSchemaBase>; - export function table>(params: System_TableSchema.TableFactoryOptionsBase, TCell> & { + export function table(params: System_TableSchema.TableFactoryOptionsBase, TCell>): System_TableSchema.TableSchemaBase, System_TableSchema.RowSchemaBase>; + export function table>(params: System_TableSchema.TableFactoryOptionsBase, TCell> & { readonly column: TColumn; }): System_TableSchema.TableSchemaBase>; - export function table>(params: System_TableSchema.TableFactoryOptionsBase, TCell> & { + export function table>(params: System_TableSchema.TableFactoryOptionsBase, TCell> & { readonly row: TRow; }): System_TableSchema.TableSchemaBase, TRow>; - export function table, const TRow extends System_TableSchema.RowSchemaBase>(params: System_TableSchema.TableFactoryOptionsBase, TCell> & { + export function table, const TRow extends System_TableSchema.RowSchemaBase>(params: System_TableSchema.TableFactoryOptionsBase, TCell> & { readonly column: TColumn; readonly row: TRow; }): System_TableSchema.TableSchemaBase;