瀏覽代碼

fix: typescript issues (#794)

* fix: added TresControl type anf dixed minor type issues

* fix: export VectorFlexibleParams types
Alvaro Saburido 11 月之前
父節點
當前提交
eecf608ad1
共有 4 個文件被更改,包括 7 次插入4 次删除
  1. 3 3
      src/composables/useTresContextProvider/index.ts
  2. 1 1
      src/devtools/plugin.ts
  3. 2 0
      src/index.ts
  4. 1 0
      src/types/index.ts

+ 3 - 3
src/composables/useTresContextProvider/index.ts

@@ -1,6 +1,6 @@
 import { useFps, useMemory, useRafFn } from '@vueuse/core'
 import { computed, inject, onUnmounted, provide, readonly, ref, shallowRef } from 'vue'
-import type { Camera, EventDispatcher, WebGLRenderer } from 'three'
+import type { Camera, WebGLRenderer } from 'three'
 import { Raycaster } from 'three'
 import type { ComputedRef, DeepReadonly, MaybeRef, MaybeRefOrGetter, Ref, ShallowRef } from 'vue'
 import { calculateMemoryUsage } from '../../utils/perf'
@@ -8,7 +8,7 @@ import { useCamera } from '../useCamera'
 import type { UseRendererOptions } from '../useRenderer'
 import { useRenderer } from '../useRenderer'
 import { extend } from '../../core/catalogue'
-import type { EmitEventFn, TresObject, TresScene } from '../../types'
+import type { EmitEventFn, TresControl, TresObject, TresScene } from '../../types'
 
 import { type TresEventManager, useTresEventManager } from '../useTresEventManager'
 import useSizes, { type SizesType } from '../useSizes'
@@ -54,7 +54,7 @@ export interface TresContext {
   extend: (objects: any) => void
   camera: ComputedRef<Camera | undefined>
   cameras: DeepReadonly<Ref<Camera[]>>
-  controls: Ref<(EventDispatcher & { enabled: boolean }) | null>
+  controls: TresControl | null
   renderer: ShallowRef<WebGLRenderer>
   raycaster: ShallowRef<Raycaster>
   perf: PerformanceState

+ 1 - 1
src/devtools/plugin.ts

@@ -177,7 +177,7 @@ export function registerTresDevtools(app: DevtoolsApp, tres: TresContext) {
             object: Object.entries(instance)
               .map(([key, value]) => {
                 if (key === 'children') {
-                  return { key, value: value.filter(child => child.type !== 'HightlightMesh') }
+                  return { key, value: value.filter((child: { type: string }) => child.type !== 'HightlightMesh') }
                 }
                 return { key, value, editable: true }
               })

+ 2 - 0
src/index.ts

@@ -34,3 +34,5 @@ export {
   templateCompilerOptions,
   dispose,
 }
+
+export type { VectorFlexibleParams } from './utils/normalize'

+ 1 - 0
src/types/index.ts

@@ -186,6 +186,7 @@ export type TresColorArray = typeof THREE.Color | [color: THREE.ColorRepresentat
 export type TresLayers = THREE.Layers | Parameters<THREE.Layers['set']>[0]
 export type TresQuaternion = THREE.Quaternion | Parameters<THREE.Quaternion['set']>
 export type TresEuler = THREE.Euler
+export type TresControl = THREE.EventDispatcher & { enabled: boolean }
 
 type WithMathProps<P> = { [K in keyof P]: P[K] extends MathRepresentation | THREE.Euler ? MathType<P[K]> : P[K] }