Skip to content

Commit d491e46

Browse files
authored
fix(types): Accept readonly arrays for vector props (#3527)
1 parent 4473d57 commit d491e46

File tree

2 files changed

+9
-2
lines changed

2 files changed

+9
-2
lines changed

.changeset/eleven-lions-thank.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@react-three/fiber': patch
3+
---
4+
5+
Accept readonly arrays for vector props

packages/fiber/src/three-types.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ import type {} from 'react/jsx-dev-runtime'
55
import type { Args, EventHandlers, InstanceProps, ConstructorRepresentation } from './core'
66
import type { Overwrite, Mutable } from './core/utils'
77

8+
type MutableOrReadonlyParameters<T extends (...args: any) => any> = Parameters<T> | Readonly<Parameters<T>>
9+
810
export interface MathRepresentation {
911
set(...args: number[]): any
1012
}
@@ -16,8 +18,8 @@ export type MathTypes = MathRepresentation | THREE.Euler | THREE.Color
1618
export type MathType<T extends MathTypes> = T extends THREE.Color
1719
? Args<typeof THREE.Color> | THREE.ColorRepresentation
1820
: T extends VectorRepresentation | THREE.Layers | THREE.Euler
19-
? T | Parameters<T['set']> | number
20-
: T | Parameters<T['set']>
21+
? T | MutableOrReadonlyParameters<T['set']> | number
22+
: T | MutableOrReadonlyParameters<T['set']>
2123

2224
export type MathProps<P> = {
2325
[K in keyof P as P[K] extends MathTypes ? K : never]: P[K] extends MathTypes ? MathType<P[K]> : never

0 commit comments

Comments
 (0)