ts-reset
ts-reset copied to clipboard
Filter throws error when using `as const`
I found a problem when using an object with readonly keys and accessing one of them dynamically. It's tough to explain, so here's a minimal example:
const test = {
A: [{ key: 1 }, { key: 2 }],
B: [{ key: 3 }, { key: 4 }],
} as const;
function check(x: 'A' | 'B') {
test[x].filter(y => y.key > 1)
}
Results in an error:
Argument of type '<T>(y: T | undefined) => boolean' is not assignable to parameter of type 'BooleanConstructor'.
Type '<T>(y: T | undefined) => boolean' provides no match for the signature 'new (value?: any): Boolean'.
If I remove ts-reset, remove as const, or access test.A directly, there is no error.