Skip to content

Type error in module breaking my build #416

Open

Description

@patrickbenjamin1

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.

Activity

  1. zzh948498 commented on May 11, 2020

    @zzh948498

    I had the same problem!

  2. khmseu commented on Dec 24, 2020

    @khmseu

    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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions