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> or readonly 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/or removeAt methods.
The original array has now been modified through what was supposed to be a readonly reference.
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 theadd
,remove
, andremoveAt
methods modify the array, which isn't legal with aReadonlyArray
Version
v6.6.2
Is this a regression?
No
🔬Minimal Reproduction
ReadonlyArray<T>
orreadonly T[]
, guaranteeing to the type system that that reference can't be used to modify the array.add
,remove
, and/orremoveAt
methods.Additional context
https://www.typescriptlang.org/docs/handbook/2/objects.html#the-readonlyarray-type