Fuse
Fuse copied to clipboard
[Typings] Incorrect `readonly` annotations
Describe the bug
The Typescript typings for Fuse claim that the constructor argument for the initial collection (possibly other arguments elsewhere in the API) takes a ReadonlyArray, but the add, remove, and removeAt methods modify the array, which isn't legal with a ReadonlyArray
Version
v6.6.2
Is this a regression?
No
đŸ”¬Minimal Reproduction
- Create an array with some documents in it.
- Put a reference to that array in a variable of type
ReadonlyArray<T>orreadonly T[], guaranteeing to the type system that that reference can't be used to modify the array. - Construct a Fuse instance from that variable.
- Modify the Fuse instance's collection by calling the
add,remove, and/orremoveAtmethods. - The original array has now been modified through what was supposed to be a readonly reference.
Additional context
https://www.typescriptlang.org/docs/handbook/2/objects.html#the-readonlyarray-type