I want to try out the toSpliced()
method:
const a = [1, 2] as const
const b = a.toSpliced(0, 1, 'hi')
This gives error: Argument of type '"hi"' is not assignable to parameter of type '1 | 2'
I try copy the array:
const copiedA = [...a] //or
const copiedA = a.map(x => x)
or type assert it:
const b = a.toSpliced(0, 1, 'hi') as any
but none of these works. Is there a way to avoid this?
The type of a
is readonly [1, 2]
.
If you want to treat it as something else, you can cast it using as
.
const b = (a as readonly any[]).toSpliced(0, 1, 'hi')
or in two lines
const anyArr: readonly any[] = a
const c = anyArr.toSpliced(0, 1, 'hi')
You should replace any
with whatever is suitable.