Type error in module breaking my build
Opened this issue · 2 comments
patrickbenjamin1 commented
Just switched over to using this on a new project, and there's a typescript error coming out of this module, from lib/types.d.ts
.
interface TableDefinition<Name extends string, Row> {
name: Name;
schema: string;
// FROM THIS LINE
columns: {[CName in keyof Row]: ColumnDefinition<CName, Row[CName]>};
dialect?: SQLDialects;
isTemporary?: boolean;
foreignKeys?: {
table: string,
columns: (keyof Row)[],
refColumns: string[],
onDelete?: 'restrict' | 'cascade' | 'no action' | 'set null' | 'set default';
onUpdate?: 'restrict' | 'cascade' | 'no action' | 'set null' | 'set default';
}
}
as that keyof is inferred as 'string' | 'number' | 'symbol'
, and ColumnDefinition
is expecting just a string for that generic.
I can solving it temporarily by telling typescript to ignore errors in node_modules, but that's not ideal.
zzh948498 commented
I had the same problem!
khmseu commented
The line should be
columns: {[CName in Extract< keyof Row, string >]: ColumnDefinition<CName, Row[CName]>};
That was a breaking change in Typescript some time in the 3.8/3.9 versions.