[Typings] Incorrect `readonly` annotations
artemiswkearney opened this issue · comments
Artemis Kearney commented
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/orremoveAt
methods. - 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
Artemis Kearney commented
The bot closed #677 even though I commented. This is still an issue.
github-actions commented
This issue is stale because it has been open 120 days with no activity. Remove stale label or comment or this will be closed in 30 days