cli-table / cli-table3

Pretty unicode tables for the command line
MIT License
535 stars 44 forks source link

[Bug/Question] Cross tables typing #185

Open Xaz16 opened 4 years ago

Xaz16 commented 4 years ago

Problem:

This code snippet produce such error from Typescript:

const resultTable = new Table({
  head: ['', 'Assets ', 'Entries']
});

resultTable.push(
   { 'Previous values': [`100`, `200`] },
   { 'Normalized values': [`10`, `100`] }
);
Type 'string[]' is not assignable to type '(string & Cell[]) | (number & Cell[]) | (false & Cell[]) | (true & Cell[]) | (CellOptions & Cell[])'.
  Type 'string[]' is not assignable to type 'CellOptions & Cell[]'.
    Property 'content' is missing in type 'string[]' but required in type 'CellOptions'.ts(2322)

According to the documentation about cross table this code should be absolutely valid https://github.com/cli-table/cli-table3#cross-tables.

Could you check the typing for that case or maybe I'm wrong?

Environment

Typescript: 3.8.3 cli-table3: 0.6.0

speedytwenty commented 2 years ago

From the syntax in your table, it seems your table is not correct. Each row pushed into the table is expected to be an array of cells. You're pushing objects into the table.

Try this instead:

resultTable.push(
   ['Previous values:', 100, 200],
   ['Normalized values:', 10, 100],
);
speedytwenty commented 2 years ago

I wasn't aware of the "cross-table" syntax option mentioned here: https://github.com/cli-table/cli-table3#cross-tables

Reopening. I'll take another poke at this now that my incorrect assumption is corrected.