glyphix 1.0.25 → 1.0.27

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "glyphix",
3
- "version": "1.0.25",
3
+ "version": "1.0.27",
4
4
  "main": "lib/index.js",
5
5
  "types": "types/index.d.ts",
6
6
  "files": [
@@ -39,7 +39,7 @@ declare module "@system.audiokit" {
39
39
  }
40
40
 
41
41
  interface AudioKitFactory {
42
- getPlayers(): AudioPlayer
42
+ getPlayers(): Array<AudioPlayer>
43
43
  getActivePlayer(): AudioPlayer
44
44
  subscribe(callback: (event:{
45
45
  notify: string,
package/types/index.d.ts CHANGED
@@ -17,37 +17,43 @@
17
17
  /// <reference path="./exchange.d.ts" />
18
18
  /// <reference path="./audiokit.d.ts" />
19
19
 
20
-
21
20
  declare global {
22
21
  function $t(key: string): string;
23
22
  }
24
23
 
24
+ // 基础 Data 类型定义
25
+ type Data<T extends Record<string, any> = Record<string, any>> = T;
25
26
 
26
- type ComputedResults<C, D> = {
27
+ // 其他类型定义保持不变
28
+ type ComputedResults<C, D extends Data> = {
27
29
  readonly [K in keyof C as C[K] extends (this: D) => any
28
30
  ? K
29
31
  : never]: C[K] extends () => infer R ? R : never;
30
32
  } & {
31
33
  [K in keyof C]: C[K] extends ComputedField<infer R> ? R : never;
32
34
  };
35
+
33
36
  type ComputedField<T> =
34
37
  | {
35
38
  get(): T;
36
39
  set(x: T): void;
37
40
  }
38
41
  | (() => T);
39
- type Data = Record<string, any>;
40
- type Computed<C, D> = {
42
+
43
+ type Computed<C, D extends Data> = {
41
44
  [K in keyof C]: K extends keyof D ? never : ComputedField<C[K]>;
42
45
  } & ThisType<D>;
46
+
43
47
  type Watches<W, D extends Data> = {
44
48
  [K in keyof W]: K extends keyof D
45
49
  ? ((newValue: D[K], oldValue: D[K]) => void) | undefined
46
50
  : never;
47
51
  };
48
- type Methods<M, D> = {
52
+
53
+ type Methods<M, D extends Data> = {
49
54
  [K in keyof M]: K extends keyof D ? never : M[K];
50
55
  };
56
+
51
57
  type LifeCycleHooks = {
52
58
  onInit?: () => void;
53
59
  onReady?: () => void;
@@ -55,6 +61,7 @@ type LifeCycleHooks = {
55
61
  onHide?: () => void;
56
62
  onDestroy?: () => void;
57
63
  };
64
+
58
65
  type OmitedProps =
59
66
  | "data"
60
67
  | "computed"
@@ -63,6 +70,7 @@ type OmitedProps =
63
70
  | "onShow"
64
71
  | "onHide"
65
72
  | "onDestroy";
73
+
66
74
  type ComponentInternals = {
67
75
  $element(id: string): Record<string, any> | undefined;
68
76
  $valid: boolean;
@@ -71,26 +79,31 @@ type ComponentInternals = {
71
79
  $component(name: string, url: string): void;
72
80
  $emit(name: string, ...args: Array<any>);
73
81
  };
74
- type ComponentProps<D, C, M> = Omit<
82
+
83
+ type ComponentProps<D extends Data, C, M> = Omit<
75
84
  D & ComputedResults<C, D> & M & ComponentInternals,
76
85
  OmitedProps
77
86
  >;
87
+
88
+ // 修正 ComponentOptions 类型
78
89
  type ComponentOptions<
79
- D extends Data,
80
- C, // 先不深究 C 的 this 约束
81
- W,
82
- M
90
+ T extends Record<string, any>,
91
+ C = any,
92
+ W = any,
93
+ M = any
83
94
  > = {
84
- data: D;
85
- computed?: Computed<C, D>;
86
- watch?: Watches<W, D>;
95
+ data: T;
96
+ computed?: Computed<C, T>;
97
+ watch?: Watches<W, T>;
87
98
  } & LifeCycleHooks &
88
- Methods<M, D> &
89
- ThisType<ComponentProps<D, Computed<C, D & Methods<M, D>>, M>>;
99
+ Methods<M, T> &
100
+ ThisType<ComponentProps<T, Computed<C, T & Methods<M, T>>, M>>;
101
+
90
102
  export declare function defineComponent<
91
- D extends Data,
92
- C, // 计算属性可能依赖于 data 和 methods
93
- W,
94
- M
95
- >(options: ComponentOptions<D, C, W, M>): ComponentOptions<D, C, W, M>;
103
+ T extends Record<string, any>,
104
+ C = any,
105
+ W = any,
106
+ M = any
107
+ >(options: ComponentOptions<T, C, W, M>): ComponentOptions<T, C, W, M>;
108
+
96
109
  export {};