The IQueryFilter interface in packages/pg-meta/src/query/QueryFilter.ts declares filter(column: string, operator: FilterOperator, value: string), but the implementing QueryFilter class accepts column: string | string[] and value: any. This mismatch creates a latent type trap for consumers that type the receiver as IQueryFilter, blocking valid calls that pass an array column or non-string value even though the class and Filter type support them.
Origin Analysis
The interface declaration was not updated when the QueryFilter.filter method and the underlying Filter type were widened to support string | string[] columns and any value types.
1. Import IQueryFilter from pg-meta.
2. Declare a variable: const q: IQueryFilter = new QueryFilter();
3. Attempt: q.filter('id', 'in', [1, 2, 3]);
4. TypeScript error: Argument of type 'number[]' is not assignable to parameter of type 'string'.
5. Alternatively, attempt: q.filter(['id', 'name'], 'eq', 'value');
6. TypeScript error: Argument of type 'string[]' is not assignable to parameter of type 'string'.
The class accepts both calls without issue, so the interface is unsound.