annil 1.5.14 → 1.6.0

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.
Files changed (55) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/api/DefineComponent/assignOptions/index.d.ts +1 -0
  3. package/dist/api/DefineComponent/assignOptions/index.js +8 -0
  4. package/dist/api/DefineComponent/assignOptions/index.js.map +1 -1
  5. package/dist/api/RootComponent/Computed/ComputedOption.d.ts +2 -2
  6. package/dist/api/RootComponent/CustomEvents/CustomEventsOption.d.ts +2 -2
  7. package/dist/api/RootComponent/Data/DataOption.d.ts +2 -2
  8. package/dist/api/RootComponent/Instance/RootComponentInstance.d.ts +5 -2
  9. package/dist/api/RootComponent/Methods/MethodsOption.d.ts +2 -2
  10. package/dist/api/RootComponent/Properties/PropertiesOption.d.ts +2 -2
  11. package/dist/api/RootComponent/Store/StoreOption.d.ts +2 -2
  12. package/dist/api/RootComponent/index.d.ts +4 -2
  13. package/dist/api/RootComponent/index.js.map +1 -1
  14. package/dist/api/SubComponent/SubComputed/SubComputedOption.d.ts +3 -3
  15. package/dist/api/SubComponent/SubData/SubDataOption.d.ts +3 -4
  16. package/dist/api/SubComponent/SubEvents/SubEventsOptions.d.ts +2 -2
  17. package/dist/api/SubComponent/SubInherit/SubInheritOption.d.ts +2 -2
  18. package/dist/api/SubComponent/SubMethods/SubMethodsOption.d.ts +2 -2
  19. package/dist/api/SubComponent/SubStore/SubStoreOption.d.ts +3 -4
  20. package/dist/api/SubComponent/index.d.ts +4 -5
  21. package/dist/api/SubComponent/index.js.map +1 -1
  22. package/package.json +4 -6
  23. package/src/api/DefineComponent/assignOptions/index.ts +14 -1
  24. package/src/api/RootComponent/Computed/ComputedOption.ts +6 -1
  25. package/src/api/RootComponent/Computed/GetComputedDoc.ts +3 -1
  26. package/src/api/RootComponent/Computed/test/error.test.ts +2 -2
  27. package/src/api/RootComponent/Computed/test/normal.test.ts +13 -11
  28. package/src/api/RootComponent/CustomEvents/CustomEventsOption.ts +3 -3
  29. package/src/api/RootComponent/Data/DataOption.ts +2 -2
  30. package/src/api/RootComponent/Data/test/normal.test.ts +2 -0
  31. package/src/api/RootComponent/Instance/RootComponentInstance.ts +4 -1
  32. package/src/api/RootComponent/Instance/test/cloneData/error.test.ts +31 -0
  33. package/src/api/RootComponent/Instance/test/cloneData/normal.test.ts +53 -0
  34. package/src/api/RootComponent/Methods/MethodsOption.ts +2 -2
  35. package/src/api/RootComponent/Properties/PropertiesOption.ts +2 -2
  36. package/src/api/RootComponent/Properties/test/normalRequired.test.ts +3 -3
  37. package/src/api/RootComponent/Store/StoreOption.ts +2 -2
  38. package/src/api/RootComponent/index.ts +6 -2
  39. package/src/api/SubComponent/SubComputed/SubComputedOption.ts +3 -3
  40. package/src/api/SubComponent/SubComputed/test/error.test.ts +3 -2
  41. package/src/api/SubComponent/SubData/SubDataOption.ts +4 -5
  42. package/src/api/SubComponent/SubData/test/normal.test.ts +0 -11
  43. package/src/api/SubComponent/SubEvents/SubEventsOptions.ts +2 -2
  44. package/src/api/SubComponent/SubInherit/SubInheritOption.ts +2 -2
  45. package/src/api/SubComponent/SubInstance/test/cloneData/error.test.ts +22 -0
  46. package/src/api/SubComponent/SubInstance/test/cloneData/normal.test.ts +73 -0
  47. package/src/api/SubComponent/SubMethods/SubMethodsOption.ts +2 -2
  48. package/src/api/SubComponent/SubStore/SubStoreOption.ts +4 -5
  49. package/src/api/SubComponent/SubStore/test/error.test.ts +0 -5
  50. package/src/api/SubComponent/SubStore/test/normal.test.ts +1 -8
  51. package/src/api/SubComponent/index.ts +32 -21
  52. package/src/types/Extra.ts +1 -1
  53. package/dist/types/Extra.d.ts +0 -1
  54. package/dist/types/Extra.js +0 -2
  55. package/dist/types/Extra.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -4,6 +4,20 @@
4
4
 
5
5
  * 解决DetailedType不接收接口类型的错误 ([ae8acbf](https://github.com/missannil/annil/commit/ae8acbfc2e62f99db565c448ad9253aa549e78bb))
6
6
 
7
+ ## [1.6.0](https://github.com/missannil/annil/compare/v1.5.15...v1.6.0) (2024-02-01)
8
+
9
+
10
+ ### Features
11
+
12
+ * 组件实例增加cloneData字段 ([a2bc52d](https://github.com/missannil/annil/commit/a2bc52de20649a735ec860cdaae2bb411028b5fe))
13
+
14
+ ## [1.5.15](https://github.com/missannil/annil/compare/v1.5.14...v1.5.15) (2024-01-15)
15
+
16
+
17
+ ### Bug Fixes
18
+
19
+ * subComputed约束 去除默认{} ([054cb48](https://github.com/missannil/annil/commit/054cb482cdc6c84e820d69d163b9cafe0c01de81))
20
+
7
21
  ## [1.5.14](https://github.com/missannil/annil/compare/v1.5.13...v1.5.14) (2024-01-15)
8
22
 
9
23
 
@@ -13,6 +13,7 @@ import type { ComputedCache } from "./computedWatchHandle/initComputed";
13
13
  type InstanceInnerFields = {
14
14
  data: OptionsInnerFields["data"];
15
15
  disposer: Record<string, Func>;
16
+ cloneData: OptionsInnerFields["data"];
16
17
  } & OptionsInnerFields["methods"];
17
18
  export type Instance = (ComponentInstance | PageInstance) & InstanceInnerFields;
18
19
  export type FuncOptions = Record<"pageLifetimes" | "lifetimes" | "watch" | "observers", Record<string, Func[]>>;
@@ -17,6 +17,13 @@ export function isPageCheck(isPage) {
17
17
  }
18
18
  };
19
19
  }
20
+ function addCloneDataToInstance() {
21
+ this.cloneData = new Proxy(this.data, {
22
+ get: (target, key) => {
23
+ return deepClone(target)[key];
24
+ },
25
+ });
26
+ }
20
27
  function onLoadReceivedDataHandle(option) {
21
28
  const innerData = option[INNERMARKER.url];
22
29
  if (innerData === undefined)
@@ -193,6 +200,7 @@ export function assignOptions(defineComponentOption) {
193
200
  && hijack(finalOptionsForComponent.pageLifetimes, "load", [loadReceivedDataHandle]);
194
201
  hijack(finalOptionsForComponent.methods, "onLoad", [onLoadReceivedDataHandle]);
195
202
  hijack(finalOptionsForComponent.lifetimes, "attached", [isPageCheck(rootComponentOption === null || rootComponentOption === void 0 ? void 0 : rootComponentOption.isPage)]);
203
+ hijack(finalOptionsForComponent.lifetimes, "created", [addCloneDataToInstance]);
196
204
  finalOptionsForComponent.isPage
197
205
  && finalOptionsForComponent.options && Reflect.deleteProperty(finalOptionsForComponent.options, "virtualHost");
198
206
  initStore(finalOptionsForComponent);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/api/DefineComponent/assignOptions/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/api/DefineComponent/assignOptions/index.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { DuplicateFieldValidator } from "hry-types/src/Generic/DuplicateFieldValidator";
2
2
  import type { ComputedConstraint } from "./ComputedConstraint";
3
- export type ComputedOption<TComputed extends ComputedConstraint, CompareKeys extends PropertyKey> = {
4
- computed?: TComputed & DuplicateFieldValidator<TComputed, CompareKeys>;
3
+ export type ComputedOption<TComputed extends ComputedConstraint, CompareKeys extends PropertyKey, Instance extends object> = {
4
+ computed?: TComputed & ThisType<Instance> & DuplicateFieldValidator<TComputed, CompareKeys>;
5
5
  };
@@ -1,5 +1,5 @@
1
- import type { V } from "hry-types";
1
+ import type { G } from "hry-types";
2
2
  import type { CustomEventConstraint } from "./CustomEventConstraint";
3
3
  export type CustomEventsOption<TCustomEvents extends CustomEventConstraint, EventsKeys extends PropertyKey> = {
4
- customEvents?: TCustomEvents & V.IllegalFieldValidator<TCustomEvents, "bubbles" | "composed" | "capturePhase", 1, "options"> & V.DuplicateFieldValidator<TCustomEvents, EventsKeys, "与events字段重复">;
4
+ customEvents?: TCustomEvents & G.IllegalFieldValidator<TCustomEvents, "bubbles" | "composed" | "capturePhase", 1, "options"> & G.DuplicateFieldValidator<TCustomEvents, EventsKeys, "与events字段重复">;
5
5
  };
@@ -1,4 +1,4 @@
1
- import type { V } from "hry-types";
1
+ import type { G } from "hry-types";
2
2
  export type DataOption<TData extends object, PropertiesKeys extends PropertyKey> = {
3
- data?: TData & V.DuplicateFieldValidator<TData, PropertiesKeys, "与properties字段重复">;
3
+ data?: TData & G.DuplicateFieldValidator<TData, PropertiesKeys, "与properties字段重复">;
4
4
  };
@@ -3,16 +3,19 @@ import type { IfExtends } from "hry-types/src/Any/IfExtends";
3
3
  import type { ComputeIntersection } from "hry-types/src/Object/ComputeIntersection";
4
4
  import type { IReactionDisposer } from "mobx";
5
5
  import type { Assign } from "../../../types/Assign";
6
+ import type { ComputeObject } from "../../../types/ComputeObj";
6
7
  import type { WMComponentInstance, WMInstanceMethods, WMPageInstance } from "../../../types/OfficialTypeAlias";
7
8
  import type { IInjectData, IInjectMethods } from "../../InstanceInject/instanceConfig";
8
9
  import type { CustomEventMethods } from "./CustomEventMethods";
9
10
  import type { CustomSetData } from "./CustomSetData";
10
- export type RootComponentInstance<TIsPage extends boolean, TMethods extends object, TDataForSetData extends object, AllData extends object, CustomEventsDoc extends object, StoreDoc extends object> = IfExtends<false, TIsPage, WMComponentInstance, WMPageInstance> & Omit<WMInstanceMethods<{}>, "setData"> & CustomSetData<TDataForSetData> & IfExtends<{}, StoreDoc, unknown, {
11
+ export type RootComponentInstance<TIsPage extends boolean, TMethods extends object, TDataForSetData extends object, AllData extends object, CustomEventsDoc extends object, StoreDoc extends object, instanceData = ComputeObject<Assign<IInjectData, ComputeIntersection<AllData>>>> = IfExtends<false, TIsPage, WMComponentInstance, WMPageInstance> & Omit<WMInstanceMethods<{}>, "setData"> & CustomSetData<TDataForSetData> & IfExtends<{}, StoreDoc, unknown, {
11
12
  disposer: {
12
13
  [k in keyof StoreDoc]: IReactionDisposer;
13
14
  };
14
15
  }> & Assign<IInjectMethods, TMethods & CustomEventMethods<CustomEventsDoc>> & {
15
- data: ReadonlyDeep<Assign<IInjectData, ComputeIntersection<AllData>>>;
16
+ data: ReadonlyDeep<instanceData>;
17
+ } & {
18
+ cloneData: ComputeObject<Assign<IInjectData, ComputeIntersection<AllData>>>;
16
19
  };
17
20
  export type ComponentInstance = RootComponentInstance<false, {}, {}, {}, {}, {}>;
18
21
  export type PageInstance = RootComponentInstance<true, {}, {}, {}, {}, {}>;
@@ -1,5 +1,5 @@
1
- import type { V } from "hry-types";
1
+ import type { G } from "hry-types";
2
2
  import type { MethodsConstraint } from "./MethodsConstraint";
3
3
  export type MethodsOption<TMethods extends MethodsConstraint, DuplicateField extends PropertyKey> = {
4
- methods?: TMethods & V.DuplicateFieldValidator<TMethods, DuplicateField>;
4
+ methods?: TMethods & G.DuplicateFieldValidator<TMethods, DuplicateField>;
5
5
  };
@@ -1,10 +1,10 @@
1
- import type { V } from "hry-types";
1
+ import type { G } from "hry-types";
2
2
  import type { Validators } from "../../../types/Validators";
3
3
  import type { PropertiesConstraint } from "./PropertiesConstraint";
4
4
  import type { PropertiesValueValidator } from "./PropertiesValueValidator";
5
5
  export type PropertiesOption<TProperties extends PropertiesConstraint> = {
6
6
  properties?: TProperties & Validators<[
7
7
  PropertiesValueValidator<TProperties>,
8
- V.IllegalFieldValidator<TProperties, "value" | "type" | "optionalTypes", 1>
8
+ G.IllegalFieldValidator<TProperties, "value" | "type" | "optionalTypes", 1>
9
9
  ]>;
10
10
  };
@@ -1,5 +1,5 @@
1
- import type { V } from "hry-types";
1
+ import type { G } from "hry-types";
2
2
  import type { StoreConstraint } from "./StoreConstraint";
3
3
  export type StoreOption<TStore extends StoreConstraint, TDuplicateKeys extends PropertyKey> = {
4
- store?: TStore & V.DuplicateFieldValidator<TStore, TDuplicateKeys, "字段重复">;
4
+ store?: TStore & G.DuplicateFieldValidator<TStore, TDuplicateKeys, "字段重复">;
5
5
  };
@@ -5,7 +5,7 @@ import type { ComputeIntersection } from "hry-types/src/Object/_api";
5
5
  import type { ComputeObject } from "../../types/ComputeObj";
6
6
  import type { WMCompOtherOption } from "../../types/OfficialTypeAlias";
7
7
  import type { ComponentDoc } from "../DefineComponent/ReturnType/ComponentDoc";
8
- import type { IInjectStore } from "../InstanceInject/instanceConfig";
8
+ import type { IInjectData, IInjectStore } from "../InstanceInject/instanceConfig";
9
9
  import type { ComputedConstraint } from "./Computed/ComputedConstraint";
10
10
  import type { ComputedOption } from "./Computed/ComputedOption";
11
11
  import type { GetComputedDoc } from "./Computed/GetComputedDoc";
@@ -31,7 +31,9 @@ import type { GetStoreDoc } from "./Store/GeTStoreDoc";
31
31
  import type { StoreConstraint } from "./Store/StoreConstraint";
32
32
  import type { StoreOption } from "./Store/StoreOption";
33
33
  import type { WatchOption } from "./Watch/WatchOption";
34
- type RootComponentOptions<TEvents extends object, TIsPage extends boolean, TCustomEvents extends CustomEventConstraint, TMethods extends MethodsConstraint, TProperties extends PropertiesConstraint, TData extends object, TStore extends StoreConstraint, TComputed extends Record<string, Func>, EventsDoc extends object, CustomEventsDoc extends object, PropertiesDoc extends object, DataDoc extends object, StoreDoc extends object, ComputedDoc extends object> = MethodsOption<TMethods, keyof (EventsDoc & CustomEventsDoc)> & PropertiesOption<TProperties> & IsPageOption<TIsPage> & EventsOption<TEvents> & CustomEventsOption<TCustomEvents, keyof EventsDoc> & DataOption<TData, keyof PropertiesDoc> & StoreOption<TStore, keyof (PropertiesDoc & DataDoc)> & ComputedOption<TComputed, keyof (PropertiesDoc & DataDoc & StoreDoc)> & PageLifetimesOption<TIsPage, PropertiesDoc> & LifetimesOption & WatchOption<ComputedDoc & Required<PropertiesDoc> & DataDoc & StoreDoc & IInjectStore> & Partial<Omit<WMCompOtherOption, "pageLifetimes" | "definitionFilter" | "observers">> & ObserversOption<ComputedDoc & Required<PropertiesDoc> & DataDoc & StoreDoc & IInjectStore> & ThisType<RootComponentInstance<TIsPage, TMethods, DataDoc, DataDoc & Required<PropertiesDoc> & StoreDoc & ComputedDoc, CustomEventsDoc, StoreDoc>>;
34
+ type RootComponentOptions<TEvents extends object, TIsPage extends boolean, TCustomEvents extends CustomEventConstraint, TMethods extends MethodsConstraint, TProperties extends PropertiesConstraint, TData extends object, TStore extends StoreConstraint, TComputed extends Record<string, Func>, EventsDoc extends object, CustomEventsDoc extends object, PropertiesDoc extends object, DataDoc extends object, StoreDoc extends object, ComputedDoc extends object> = MethodsOption<TMethods, keyof (EventsDoc & CustomEventsDoc)> & PropertiesOption<TProperties> & IsPageOption<TIsPage> & EventsOption<TEvents> & CustomEventsOption<TCustomEvents, keyof EventsDoc> & DataOption<TData, keyof PropertiesDoc> & StoreOption<TStore, keyof (PropertiesDoc & DataDoc)> & ComputedOption<TComputed, keyof (PropertiesDoc & DataDoc & StoreDoc), {
35
+ data: ComputeObject<DataDoc & Required<PropertiesDoc> & StoreDoc & ComputedDoc & IInjectData>;
36
+ }> & PageLifetimesOption<TIsPage, PropertiesDoc> & LifetimesOption & WatchOption<ComputedDoc & Required<PropertiesDoc> & DataDoc & StoreDoc & IInjectStore> & Partial<Omit<WMCompOtherOption, "pageLifetimes" | "definitionFilter" | "observers">> & ObserversOption<ComputedDoc & Required<PropertiesDoc> & DataDoc & StoreDoc & IInjectStore> & ThisType<RootComponentInstance<TIsPage, TMethods, DataDoc, DataDoc & Required<PropertiesDoc> & StoreDoc & ComputedDoc, CustomEventsDoc, StoreDoc>>;
35
37
  type RootComponentConstructor<TComponentDocList extends ComponentDoc[]> = {
36
38
  <TEvents extends EventsConstraint<TComponentDocList>, TIsPage extends boolean = false, const TProperties extends PropertiesConstraint = {}, TData extends object = {}, TStore extends StoreConstraint = {}, TComputed extends ComputedConstraint = {}, TCustomEvents extends IfExtends<TIsPage, false, CustomEventConstraint, EmptyObject> = {}, TMethods extends MethodsConstraint = {}, EventsDoc extends object = IfExtends<EventsConstraint<TComponentDocList>, TEvents, {}, TEvents>, CustomEventsDoc extends object = GetCustomEventDoc<TCustomEvents>, PropertiesDoc extends object = GetPropertiesDoc<TProperties, TIsPage>, DataDoc extends object = TData, StoreDoc extends object = GetStoreDoc<TStore>, ComputedDoc extends object = GetComputedDoc<TComputed>>(options: RootComponentOptions<TEvents, TIsPage, TCustomEvents, TMethods, TProperties, TData, TStore, TComputed, EventsDoc, CustomEventsDoc, PropertiesDoc, DataDoc, StoreDoc, ComputedDoc>): ComputeIntersection<IfExtends<TIsPage, false, {}, {
37
39
  isPage: true;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/RootComponent/index.ts"],"names":[],"mappings":"AAuIA,MAAM,UAAU,aAAa;IAM3B,OAAO,CAAC,OAAY,EAAE,EAAE,CAAC,OAAO,CAAC;AACnC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/RootComponent/index.ts"],"names":[],"mappings":"AA2IA,MAAM,UAAU,aAAa;IAM3B,OAAO,CAAC,OAAY,EAAE,EAAE,CAAC,OAAO,CAAC;AACnC,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { V } from "hry-types";
2
- export type SubComputedOption<TComputed extends object, legal extends Record<PropertyKey, unknown>> = {
3
- computed?: TComputed & V.IllegalFieldValidator<TComputed, keyof legal, 0, "", "重复或无效的字段">;
1
+ import type { G } from "hry-types";
2
+ export type SubComputedOption<TComputed extends object, legal extends PropertyKey> = {
3
+ computed?: TComputed & G.IllegalFieldValidator<TComputed, legal, 0, "", "重复或无效的字段">;
4
4
  };
@@ -1,5 +1,4 @@
1
- import type { V } from "hry-types";
2
- import type { InnerFields } from "../../../types/InnerData";
3
- export type SubDataOption<TSubData extends object, legalKeys extends PropertyKey, TPrefix extends string> = {
4
- data?: TSubData & V.IllegalFieldValidator<TSubData, legalKeys | InnerFields<TPrefix>, 0, "", "子组件无需此字段或与Inherit字段重复">;
1
+ import type { G } from "hry-types";
2
+ export type SubDataOption<TSubData extends object, legalKeys extends PropertyKey> = {
3
+ data?: TSubData & G.IllegalFieldValidator<TSubData, legalKeys, 0, "", "子组件无需此字段或与Inherit字段重复">;
5
4
  };
@@ -1,4 +1,4 @@
1
- import type { V } from "hry-types";
1
+ import type { G } from "hry-types";
2
2
  export type SubEventsOption<TSubEvents, SubEventsDoc extends object, legalKeys extends PropertyKey> = {
3
- events?: TSubEvents & V.IllegalFieldValidator<SubEventsDoc, legalKeys>;
3
+ events?: TSubEvents & G.IllegalFieldValidator<SubEventsDoc, legalKeys>;
4
4
  };
@@ -1,4 +1,4 @@
1
- import type { V } from "hry-types";
1
+ import type { G } from "hry-types";
2
2
  export type SubInheritOption<TInherit extends object, legalKeys extends PropertyKey> = {
3
- inherit?: TInherit & V.IllegalFieldValidator<TInherit, legalKeys, 0, "">;
3
+ inherit?: TInherit & G.IllegalFieldValidator<TInherit, legalKeys, 0, "">;
4
4
  };
@@ -1,6 +1,6 @@
1
- import type { V } from "hry-types";
1
+ import type { G } from "hry-types";
2
2
  import type { PrefixValidator } from "hry-types/src/Generic/PrefixValidator";
3
3
  import type { SubMethodsConstraint } from "./SubMethodsConstraint";
4
4
  export type SubMethodsOption<TSubMethods extends SubMethodsConstraint, TPrefix extends string, ExcludedKeys extends PropertyKey> = {
5
- methods?: TSubMethods & PrefixValidator<TSubMethods, TPrefix> & V.DuplicateFieldValidator<TSubMethods, ExcludedKeys>;
5
+ methods?: TSubMethods & PrefixValidator<TSubMethods, TPrefix> & G.DuplicateFieldValidator<TSubMethods, ExcludedKeys>;
6
6
  };
@@ -1,5 +1,4 @@
1
- import type { V } from "hry-types";
2
- import type { InnerFields } from "../../../types/InnerData";
3
- export type SubStoreOption<TSubStore extends object, legalKeys extends PropertyKey, TPrefix extends string> = {
4
- store?: TSubStore & V.IllegalFieldValidator<TSubStore, legalKeys | InnerFields<TPrefix>, 0, "", "与inherit和data字段重复或前缀错误">;
1
+ import type { G } from "hry-types";
2
+ export type SubStoreOption<TSubStore extends object, legalKeys extends PropertyKey> = {
3
+ store?: TSubStore & G.IllegalFieldValidator<TSubStore, legalKeys, 0, "", "与inherit和data字段重复或前缀错误">;
5
4
  };
@@ -5,7 +5,6 @@ import type { GetComponentPrefix } from "../../types/GetComponentPrefix";
5
5
  import type { ReplacePrefix } from "../../types/ReplacePrefix";
6
6
  import type { ComponentDoc } from "../DefineComponent/ReturnType/ComponentDoc";
7
7
  import type { Func } from "hry-types/src/Misc/Func";
8
- import type { Extra } from "../../types/Extra";
9
8
  import type { InnerFields } from "../../types/InnerData";
10
9
  import type { WMCompOtherOption } from "../../types/OfficialTypeAlias";
11
10
  import type { Replace } from "../../types/Replace";
@@ -37,11 +36,11 @@ import type { CreateSubComponentDoc } from "./SubReturnType/CreateSubComponentDo
37
36
  import type { SubStoreConstraint } from "./SubStore/SubStoreConstraint";
38
37
  import type { SubStoreOption } from "./SubStore/SubStoreOption";
39
38
  import type { SubWatchOption } from "./SubWatch/SubWatchOption";
40
- type Options<RootDoc extends RootComponentDoc, IsPage extends boolean, CurrentCompDoc extends ComponentDoc, Prefix extends string, AllRootDataDoc extends object, TInherit extends object, TSubData extends object, TSubStore extends object, TSubComputed extends object, TEvents extends object, TSubMethods extends SubMethodsConstraint, InheritDoc extends object, SubDataDoc extends object, SubStoreDoc extends object, SubComputedDoc extends object, SubEventsDoc extends object, SubMethodsDoc extends object> = SubInheritOption<TInherit, keyof CurrentCompDoc["properties"]> & SubDataOption<TSubData, Exclude<keyof CurrentCompDoc["properties"] | keyof Extra<Prefix>, (keyof InheritDoc)>, Prefix> & SubStoreOption<TSubStore, Exclude<keyof CurrentCompDoc["properties"] | keyof Extra<Prefix>, (keyof (InheritDoc & SubDataDoc))>, Prefix> & SubComputedOption<TSubComputed, Omit<CurrentCompDoc["properties"], (keyof (InheritDoc & SubDataDoc & SubStoreDoc))>> & SubEventsOption<TEvents, SubEventsDoc, keyof SubEventsConstraint<CurrentCompDoc>> & SubMethodsOption<TSubMethods, Prefix, keyof (CurrentCompDoc["customEvents"] & SubEventsDoc)> & SubPageLifetimesOption<IsPage, RootDoc["properties"] & {}> & SubLifetimesOption & SubWatchOption<SubComputedDoc & SubDataDoc & AllRootDataDoc & SubStoreDoc & IInjectStore> & Partial<Omit<WMCompOtherOption, "pageLifetimes" | "definitionFilter" | "export" | "observers" | "relations">> & SubObserversOption<SubComputedDoc & SubDataDoc & AllRootDataDoc & SubStoreDoc & IInjectStore> & ThisType<SubInstance<SubMethodsDoc & RootDoc["methods"], Replace<SubDataDoc, Required<CurrentCompDoc["properties"]>>, AllRootDataDoc & Replace<SubDataDoc & SubComputedDoc & SubStoreDoc, Required<CurrentCompDoc["properties"]>>, RootDoc["customEvents"] & {}, SubStoreDoc>>;
39
+ type Options<RootDoc extends RootComponentDoc, IsPage extends boolean, CurrentCompDoc extends ComponentDoc, Prefix extends string, AllRootDataDoc extends object, TInherit extends object, TSubData extends object, TSubStore extends object, TSubComputed extends object, TEvents extends object, TSubMethods extends SubMethodsConstraint, InheritDoc extends object, SubDataDoc extends object, SubStoreDoc extends object, SubComputedDoc extends object, SubEventsDoc extends object, SubMethodsDoc extends object, CompDocKeys extends PropertyKey = keyof CurrentCompDoc["properties"]> = SubInheritOption<TInherit, CompDocKeys> & SubDataOption<TSubData, Exclude<CompDocKeys, (keyof InheritDoc)> | InnerFields<Prefix>> & SubStoreOption<TSubStore, Exclude<CompDocKeys, (keyof (InheritDoc & SubDataDoc))> | InnerFields<Prefix>> & SubComputedOption<TSubComputed, Exclude<CompDocKeys, (keyof (InheritDoc & SubDataDoc & SubStoreDoc))> | InnerFields<Prefix>> & SubEventsOption<TEvents, SubEventsDoc, keyof SubEventsConstraint<CurrentCompDoc>> & SubMethodsOption<TSubMethods, Prefix, keyof (CurrentCompDoc["customEvents"] & SubEventsDoc)> & SubPageLifetimesOption<IsPage, NonNullable<RootDoc["properties"]>> & SubLifetimesOption & SubWatchOption<SubComputedDoc & SubDataDoc & AllRootDataDoc & SubStoreDoc & IInjectStore> & Partial<Omit<WMCompOtherOption, "pageLifetimes" | "definitionFilter" | "export" | "observers" | "relations">> & SubObserversOption<SubComputedDoc & SubDataDoc & AllRootDataDoc & SubStoreDoc & IInjectStore> & ThisType<SubInstance<SubMethodsDoc & RootDoc["methods"], Replace<SubDataDoc, Required<CurrentCompDoc["properties"]>>, AllRootDataDoc & Replace<SubDataDoc & SubComputedDoc & SubStoreDoc, Required<CurrentCompDoc["properties"]>>, NonNullable<RootDoc["customEvents"]>, SubStoreDoc>>;
41
40
  type SubComponentConstructor<TRootDoc extends RootComponentDoc, TOriginalCompDoc extends ComponentDoc, TSupplementalPrefix extends string = "", IsPage extends boolean = TRootDoc["isPage"] extends true ? true : false, CurrentPrefix extends string = `${GetComponentPrefix<TOriginalCompDoc>}${Capitalize<TSupplementalPrefix>}`, CurrentCompDoc extends ComponentDoc = IfExtends<TSupplementalPrefix, "", TOriginalCompDoc, ReplacePrefix<TOriginalCompDoc, CurrentPrefix>>, AllRootDataDoc extends object = Required<TRootDoc["properties"]> & TRootDoc["data"] & TRootDoc["computed"] & TRootDoc["store"]> = {
42
- <TInherit extends InheritConstraint<AllRootDataDoc, CurrentCompDoc>, TSubData extends SubDataConstraint<Omit<Required<CurrentCompDoc["properties"]>, keyof InheritDoc> & Extra<CurrentPrefix> & Record<InnerFields<CurrentPrefix>, unknown>>, TSubStore extends SubStoreConstraint<Omit<Required<CurrentCompDoc["properties"]> & Extra<CurrentPrefix>, keyof (InheritDoc & SubDataDoc)> & Record<InnerFields<CurrentPrefix>, unknown>>, TEvents extends SubEventsConstraint<CurrentCompDoc>, TSubComputed extends SubComputedConstraint<Omit<Required<CurrentCompDoc["properties"]>, keyof (InheritDoc & SubDataDoc & SubStoreDoc)> & Extra<CurrentPrefix> & Record<InnerFields<CurrentPrefix>, unknown>> = {}, TSubMethods extends SubMethodsConstraint = {}, InheritDoc extends object = IfExtends<InheritConstraint<AllRootDataDoc, CurrentCompDoc>, TInherit, {}, TInherit>, SubDataDoc extends object = IfExtends<SubDataConstraint<Omit<Required<CurrentCompDoc["properties"]>, keyof InheritDoc>>, TSubData, {}, TSubData>, SubStoreDoc extends object = IfExtends<SubStoreConstraint<Omit<Required<CurrentCompDoc["properties"]>, keyof (InheritDoc & SubDataDoc)>>, TSubStore, {}, {
43
- [k in keyof TSubStore]: ReturnType<TSubStore[k] & {}>;
44
- }>, SubComputedDoc extends object = IfExtends<SubComputedConstraint<Omit<Required<CurrentCompDoc["properties"]>, keyof (InheritDoc & SubDataDoc & SubStoreDoc)>>, TSubComputed, {}, GetSubComputedDoc<TSubComputed>>, SubEventsDoc extends object = IfExtends<SubEventsConstraint<CurrentCompDoc>, TEvents, {}, TEvents>, SubMethodsDoc extends object = TSubMethods, MissingRequiredField extends PropertyKey = Exclude<RequiredKeys<CurrentCompDoc["properties"] & {}>, keyof (InheritDoc & SubDataDoc & SubStoreDoc & IfExtends<SubComputedConstraint<Omit<Required<CurrentCompDoc["properties"]>, keyof (InheritDoc & SubDataDoc & SubStoreDoc)>>, TSubComputed, {}, GetSubComputedDoc<TSubComputed>>)>>(options: Options<TRootDoc, IsPage, CurrentCompDoc, CurrentPrefix, AllRootDataDoc, TInherit, TSubData, TSubStore, TSubComputed, TEvents, TSubMethods, InheritDoc, SubDataDoc, SubStoreDoc, SubComputedDoc, SubEventsDoc, SubMethodsDoc>): CreateSubComponentDoc<TOriginalCompDoc["customEvents"] & {}, SubEventsDoc, MissingRequiredField>;
41
+ <TInherit extends InheritConstraint<AllRootDataDoc, CurrentCompDoc>, TSubData extends SubDataConstraint<Omit<Required<CurrentCompDoc["properties"]>, keyof InheritDoc> & Record<InnerFields<CurrentPrefix>, unknown>>, TSubStore extends SubStoreConstraint<Omit<Required<CurrentCompDoc["properties"]>, keyof (InheritDoc & SubDataDoc)> & Record<InnerFields<CurrentPrefix>, unknown>>, TEvents extends SubEventsConstraint<CurrentCompDoc>, TSubComputed extends SubComputedConstraint<Omit<Required<CurrentCompDoc["properties"]>, keyof (InheritDoc & SubDataDoc & SubStoreDoc)> & Record<InnerFields<CurrentPrefix>, unknown>>, TSubMethods extends SubMethodsConstraint = {}, InheritDoc extends object = IfExtends<InheritConstraint<AllRootDataDoc, CurrentCompDoc>, TInherit, {}, TInherit>, SubDataDoc extends object = IfExtends<SubDataConstraint<Omit<Required<CurrentCompDoc["properties"]>, keyof InheritDoc> & Record<InnerFields<CurrentPrefix>, unknown>>, TSubData, {}, TSubData>, SubStoreDoc extends object = IfExtends<SubStoreConstraint<Omit<Required<CurrentCompDoc["properties"]>, keyof (InheritDoc & SubDataDoc)> & Record<InnerFields<CurrentPrefix>, unknown>>, TSubStore, {}, {
42
+ [k in keyof TSubStore]: ReturnType<NonNullable<TSubStore[k]>>;
43
+ }>, SubComputedDoc extends object = IfExtends<SubComputedConstraint<Omit<Required<CurrentCompDoc["properties"]>, keyof (InheritDoc & SubDataDoc & SubStoreDoc)> & Record<InnerFields<CurrentPrefix>, unknown>>, TSubComputed, {}, GetSubComputedDoc<TSubComputed>>, SubEventsDoc extends object = IfExtends<SubEventsConstraint<CurrentCompDoc>, TEvents, {}, TEvents>, SubMethodsDoc extends object = TSubMethods, MissingRequiredField extends PropertyKey = Exclude<RequiredKeys<NonNullable<CurrentCompDoc["properties"]>>, keyof (InheritDoc & SubDataDoc & SubStoreDoc & IfExtends<SubComputedConstraint<Omit<Required<CurrentCompDoc["properties"]>, keyof (InheritDoc & SubDataDoc & SubStoreDoc)>>, TSubComputed, {}, GetSubComputedDoc<TSubComputed>>)>>(options: Options<TRootDoc, IsPage, CurrentCompDoc, CurrentPrefix, AllRootDataDoc, TInherit, TSubData, TSubStore, TSubComputed, TEvents, TSubMethods, InheritDoc, SubDataDoc, SubStoreDoc, SubComputedDoc, SubEventsDoc, SubMethodsDoc>): CreateSubComponentDoc<NonNullable<TOriginalCompDoc["customEvents"]>, SubEventsDoc, MissingRequiredField>;
45
44
  };
46
45
  export declare function SubComponent<RootDoc extends RootComponentDoc, CompDoc extends ComponentDoc, Prefix extends string = "">(): IfExtends<EmptyObject, CompDoc, (opt: EmptyObject) => never, SubComponentConstructor<RootDoc, CompDoc, Prefix>>;
47
46
  export type SubComponentTrueOptions = {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/SubComponent/index.ts"],"names":[],"mappings":"AA8NA,MAAM,UAAU,YAAY;IAK1B,OAAO,CAAC,CAAC,OAAY,EAAE,EAAE,CAAC,OAAkC,CAAQ,CAAC;AACvE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/SubComponent/index.ts"],"names":[],"mappings":"AAyOA,MAAM,UAAU,YAAY;IAK1B,OAAO,CAAC,CAAC,OAAY,EAAE,EAAE,CAAC,OAAkC,CAAQ,CAAC;AACvE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "annil",
3
- "version": "1.5.14",
3
+ "version": "1.6.0",
4
4
  "description": "微信小程序(原生开发)插件",
5
5
  "main": "dist/index.js",
6
6
  "types": "src/index.ts",
@@ -14,10 +14,8 @@
14
14
  "prepare": "husky install",
15
15
  "lint": "eslint . --fix && npm run fmt",
16
16
  "fmt": "dprint fmt",
17
- "test:jest": "jest --watch",
18
- "test:type": "tsc --watch",
19
- "type": "npm run test:type",
20
- "jest": "npm run test:jest",
17
+ "type": "tsc --watch",
18
+ "jest": "jest --watch",
21
19
  "build": "tsc -p tsconfig.build.json"
22
20
  },
23
21
  "devDependencies": {
@@ -28,6 +26,7 @@
28
26
  "commitlint": "^17.6.5",
29
27
  "eslint": "^8.54.0",
30
28
  "eslint-plugin-tsdoc": "^0.2.17",
29
+ "hry-types": "^0.18.1",
31
30
  "husky": "^8.0.3",
32
31
  "jest": "^29.7.0",
33
32
  "jest-environment-jsdom": "^29.7.0",
@@ -54,7 +53,6 @@
54
53
  "author": "missannil",
55
54
  "license": "MIT",
56
55
  "peerDependencies": {
57
- "hry-types": "^0.17.0",
58
56
  "miniprogram-api-typings": "^3.12.2"
59
57
  }
60
58
  }
@@ -1,6 +1,5 @@
1
1
  import type { Func } from "hry-types/src/Misc/_api";
2
2
  import { BBeforeCreate } from "../../../behaviors/BbeforeCreated";
3
-
4
3
  import type { Assign } from "../../../types/Assign";
5
4
  import type { WMComponent } from "../../../types/OfficialTypeAlias";
6
5
  import { deepClone } from "../../../utils/deepClone";
@@ -34,6 +33,7 @@ import { initStore } from "./initStore";
34
33
  type InstanceInnerFields = {
35
34
  data: OptionsInnerFields["data"];
36
35
  disposer: Record<string, Func>;
36
+ cloneData: OptionsInnerFields["data"];
37
37
  } & OptionsInnerFields["methods"];
38
38
 
39
39
  export type Instance =
@@ -101,6 +101,13 @@ export function isPageCheck(isPage: boolean | undefined) {
101
101
  };
102
102
  }
103
103
 
104
+ function addCloneDataToInstance(this: Instance) {
105
+ this.cloneData = new Proxy(this.data, {
106
+ get: <T extends object>(target: T, key: keyof T) => {
107
+ return deepClone(target)[key];
108
+ },
109
+ });
110
+ }
104
111
  /**
105
112
  * 原生Component会对传入的对象字段匹配的properties字段setData赋值。不符合字段或Page时不会赋值。
106
113
  * 此函数为给实例setData赋值,默认传递值与properties相符(ts类型安全)。
@@ -439,6 +446,12 @@ export function assignOptions(
439
446
  [isPageCheck(rootComponentOption?.isPage)],
440
447
  );
441
448
 
449
+ hijack(
450
+ finalOptionsForComponent.lifetimes!,
451
+ "created",
452
+ [addCloneDataToInstance],
453
+ );
454
+
442
455
  // 页面时删除预设的虚拟组件字段
443
456
  finalOptionsForComponent.isPage
444
457
  && finalOptionsForComponent.options && Reflect.deleteProperty(finalOptionsForComponent.options, "virtualHost");
@@ -2,7 +2,11 @@ import type { DuplicateFieldValidator } from "hry-types/src/Generic/DuplicateFie
2
2
 
3
3
  import type { ComputedConstraint } from "./ComputedConstraint";
4
4
 
5
- export type ComputedOption<TComputed extends ComputedConstraint, CompareKeys extends PropertyKey> = {
5
+ export type ComputedOption<
6
+ TComputed extends ComputedConstraint,
7
+ CompareKeys extends PropertyKey,
8
+ Instance extends object,
9
+ > = {
6
10
  /**
7
11
  * computed字段, [类型约束ComputedConstraint](ComputedConstraint.ts)
8
12
  * @remarks
@@ -28,5 +32,6 @@ export type ComputedOption<TComputed extends ComputedConstraint, CompareKeys ext
28
32
  */
29
33
  computed?:
30
34
  & TComputed
35
+ & ThisType<Instance>
31
36
  & DuplicateFieldValidator<TComputed, CompareKeys>;
32
37
  };
@@ -5,4 +5,6 @@ import type { ComputedConstraint } from "./ComputedConstraint";
5
5
  * @param T - ComputedConstraint
6
6
  * @returns object
7
7
  */
8
- export type GetComputedDoc<TComputed extends ComputedConstraint> = { [k in keyof TComputed]: ReturnType<TComputed[k]> };
8
+ export type GetComputedDoc<TComputed extends ComputedConstraint> = {
9
+ [k in keyof TComputed]: ReturnType<TComputed[k]>;
10
+ };
@@ -10,11 +10,11 @@ RootComponent()({
10
10
  },
11
11
  computed: {
12
12
  // @ts-expect-error '与properties字段重复'
13
- str() {
13
+ str(): string {
14
14
  return "与properties字段重复";
15
15
  },
16
16
  // @ts-expect-error "与data字段重复"
17
- num() {
17
+ num(): string {
18
18
  return "与data字段重复";
19
19
  },
20
20
  },
@@ -10,6 +10,7 @@ const RootDoc = RootComponent()({
10
10
  },
11
11
  data: {
12
12
  lastName: "lastName",
13
+ mock_User: {} as Mock_User,
13
14
  },
14
15
  store: {
15
16
  prefix: () => "hry-", // 模拟而已
@@ -30,17 +31,18 @@ const RootDoc = RootComponent()({
30
31
  // 3 this.data 类型是深度只读的
31
32
  Checking<
32
33
  typeof this.data,
33
- ReadonlyDeep<
34
- {
35
- firstName: string;
36
- lastName: string;
37
- fullName: string;
38
- user: Mock_User;
39
- prefix: string;
40
- id_fullName: string;
41
- readOnly: "str";
42
- } & IInjectData
43
- >,
34
+ {
35
+ firstName: string;
36
+ lastName: string;
37
+ mock_User: Mock_User;
38
+ fullName: string;
39
+ user: Mock_User;
40
+ prefix: string;
41
+ id_fullName: string;
42
+ readOnly: "str";
43
+ injectStr: string;
44
+ injectTheme: "light" | "dark" | undefined;
45
+ },
44
46
  Test.Pass
45
47
  >;
46
48
 
@@ -1,4 +1,4 @@
1
- import type { V } from "hry-types";
1
+ import type { G } from "hry-types";
2
2
  import type { CustomEventConstraint } from "./CustomEventConstraint";
3
3
 
4
4
  export type CustomEventsOption<
@@ -36,6 +36,6 @@ export type CustomEventsOption<
36
36
  */
37
37
  customEvents?:
38
38
  & TCustomEvents
39
- & V.IllegalFieldValidator<TCustomEvents, "bubbles" | "composed" | "capturePhase", 1, "options">
40
- & V.DuplicateFieldValidator<TCustomEvents, EventsKeys, "与events字段重复">;
39
+ & G.IllegalFieldValidator<TCustomEvents, "bubbles" | "composed" | "capturePhase", 1, "options">
40
+ & G.DuplicateFieldValidator<TCustomEvents, EventsKeys, "与events字段重复">;
41
41
  };
@@ -1,4 +1,4 @@
1
- import type { V } from "hry-types";
1
+ import type { G } from "hry-types";
2
2
 
3
3
  export type DataOption<TData extends object, PropertiesKeys extends PropertyKey> = {
4
4
  /**
@@ -17,5 +17,5 @@ export type DataOption<TData extends object, PropertiesKeys extends PropertyKey>
17
17
  */
18
18
  data?:
19
19
  & TData
20
- & V.DuplicateFieldValidator<TData, PropertiesKeys, "与properties字段重复">;
20
+ & G.DuplicateFieldValidator<TData, PropertiesKeys, "与properties字段重复">;
21
21
  };
@@ -14,6 +14,8 @@ const RootDoc = RootComponent()({
14
14
  },
15
15
  methods: {
16
16
  foo() {
17
+ this.cloneData.num = 123;
18
+
17
19
  Checking<
18
20
  typeof this.data,
19
21
  ReadonlyDeep<{ gender: Gender; num: number; _innernalFields: number } & IInjectData>,
@@ -4,6 +4,7 @@ import type { ComputeIntersection } from "hry-types/src/Object/ComputeIntersecti
4
4
  import type { IReactionDisposer } from "mobx";
5
5
 
6
6
  import type { Assign } from "../../../types/Assign";
7
+ import type { ComputeObject } from "../../../types/ComputeObj";
7
8
  import type { WMComponentInstance, WMInstanceMethods, WMPageInstance } from "../../../types/OfficialTypeAlias";
8
9
  import type { IInjectData, IInjectMethods } from "../../InstanceInject/instanceConfig";
9
10
  import type { CustomEventMethods } from "./CustomEventMethods";
@@ -15,6 +16,7 @@ export type RootComponentInstance<
15
16
  AllData extends object,
16
17
  CustomEventsDoc extends object,
17
18
  StoreDoc extends object,
19
+ instanceData = ComputeObject<Assign<IInjectData, ComputeIntersection<AllData>>>,
18
20
  > =
19
21
  // 官方实例属性is options dataset等
20
22
  & IfExtends<false, TIsPage, WMComponentInstance, WMPageInstance>
@@ -26,7 +28,8 @@ export type RootComponentInstance<
26
28
  disposer: { [k in keyof StoreDoc]: IReactionDisposer };
27
29
  }>
28
30
  & Assign<IInjectMethods, TMethods & CustomEventMethods<CustomEventsDoc>>
29
- & { data: ReadonlyDeep<Assign<IInjectData, ComputeIntersection<AllData>>> };
31
+ & { data: ReadonlyDeep<instanceData> }
32
+ & { cloneData: ComputeObject<Assign<IInjectData, ComputeIntersection<AllData>>> };
30
33
 
31
34
  export type ComponentInstance = RootComponentInstance<false, {}, {}, {}, {}, {}>;
32
35
 
@@ -0,0 +1,31 @@
1
+ import type { DetailedType } from "../../../../..";
2
+ import { RootComponent } from "../../..";
3
+
4
+ interface User {
5
+ readonly id: number;
6
+ readonly name: string;
7
+ slected: boolean;
8
+ }
9
+
10
+ RootComponent()({
11
+ properties: {
12
+ num: Number,
13
+ user: Object as DetailedType<User>,
14
+ },
15
+ data: {
16
+ str: "123",
17
+ arr: [{}] as User[],
18
+ },
19
+
20
+ methods: {
21
+ M1() {
22
+ const cloneData = this.cloneData;
23
+
24
+ // @ts-expect-error 尽管cloneData去除了readonly,user.id属性依然是readonly
25
+ cloneData.user!.id = 1;
26
+
27
+ // @ts-expect-error arr[0].name属性依然是readonly
28
+ cloneData.arr[0].name = "zhao";
29
+ },
30
+ },
31
+ });
@@ -0,0 +1,53 @@
1
+ import { Checking, type Test } from "hry-types";
2
+ import type { _ReadonlyDeep } from "hry-types/src/Any/_api";
3
+ import type { DetailedType } from "../../../../..";
4
+ import { RootComponent } from "../../..";
5
+
6
+ interface User {
7
+ readonly id: number;
8
+ readonly name: string;
9
+ slected: boolean;
10
+ }
11
+
12
+ RootComponent()({
13
+ properties: {
14
+ num: Number,
15
+ obj: Object as DetailedType<User>,
16
+ },
17
+ data: {
18
+ str: "123",
19
+ arr: [{}] as User[],
20
+ },
21
+
22
+ methods: {
23
+ M1() {
24
+ Checking<
25
+ typeof this.data,
26
+ _ReadonlyDeep<
27
+ {
28
+ injectTheme: "dark" | "light" | undefined;
29
+ injectStr: string;
30
+ str: string;
31
+ arr: User[];
32
+ num: number;
33
+ obj: User | null;
34
+ }
35
+ >,
36
+ Test.Pass
37
+ >;
38
+
39
+ Checking<
40
+ typeof this.cloneData,
41
+ {
42
+ injectTheme: "dark" | "light" | undefined;
43
+ injectStr: string;
44
+ str: string;
45
+ arr: User[];
46
+ num: number;
47
+ obj: User | null;
48
+ },
49
+ Test.Pass
50
+ >;
51
+ },
52
+ },
53
+ });
@@ -1,4 +1,4 @@
1
- import type { V } from "hry-types";
1
+ import type { G } from "hry-types";
2
2
 
3
3
  import type { MethodsConstraint } from "./MethodsConstraint";
4
4
 
@@ -11,5 +11,5 @@ export type MethodsOption<
11
11
  */
12
12
  methods?:
13
13
  & TMethods
14
- & V.DuplicateFieldValidator<TMethods, DuplicateField>;
14
+ & G.DuplicateFieldValidator<TMethods, DuplicateField>;
15
15
  };
@@ -1,4 +1,4 @@
1
- import type { V } from "hry-types";
1
+ import type { G } from "hry-types";
2
2
  import type { Validators } from "../../../types/Validators";
3
3
  import type { PropertiesConstraint } from "./PropertiesConstraint";
4
4
  import type { PropertiesValueValidator } from "./PropertiesValueValidator";
@@ -21,6 +21,6 @@ export type PropertiesOption<
21
21
  & Validators<[
22
22
  PropertiesValueValidator<TProperties>,
23
23
  // 放在最后一个,正常返回不是unknown 而是Record<string,unknown>
24
- V.IllegalFieldValidator<TProperties, "value" | "type" | "optionalTypes", 1>,
24
+ G.IllegalFieldValidator<TProperties, "value" | "type" | "optionalTypes", 1>,
25
25
  ]>;
26
26
  };
@@ -9,10 +9,10 @@ import type { RequiredSingle, RequiredType, RequiredUnion } from "../PropertiesC
9
9
  /**
10
10
  * 共用测试对象类型
11
11
  */
12
- export type Mock_User = {
13
- id: string;
12
+ export interface Mock_User {
13
+ readonly id: string;
14
14
  age?: number;
15
- };
15
+ }
16
16
 
17
17
  /**
18
18
  * 共用测试对象类型
@@ -1,4 +1,4 @@
1
- import type { V } from "hry-types";
1
+ import type { G } from "hry-types";
2
2
  import type { StoreConstraint } from "./StoreConstraint";
3
3
 
4
4
  export type StoreOption<TStore extends StoreConstraint, TDuplicateKeys extends PropertyKey> = {
@@ -16,5 +16,5 @@ export type StoreOption<TStore extends StoreConstraint, TDuplicateKeys extends P
16
16
  */
17
17
  store?:
18
18
  & TStore
19
- & V.DuplicateFieldValidator<TStore, TDuplicateKeys, "字段重复">;
19
+ & G.DuplicateFieldValidator<TStore, TDuplicateKeys, "字段重复">;
20
20
  };
@@ -5,7 +5,7 @@ import type { ComputeIntersection } from "hry-types/src/Object/_api";
5
5
  import type { ComputeObject } from "../../types/ComputeObj";
6
6
  import type { WMCompOtherOption } from "../../types/OfficialTypeAlias";
7
7
  import type { ComponentDoc } from "../DefineComponent/ReturnType/ComponentDoc";
8
- import type { IInjectStore } from "../InstanceInject/instanceConfig";
8
+ import type { IInjectData, IInjectStore } from "../InstanceInject/instanceConfig";
9
9
  import type { ComputedConstraint } from "./Computed/ComputedConstraint";
10
10
  import type { ComputedOption } from "./Computed/ComputedOption";
11
11
  import type { GetComputedDoc } from "./Computed/GetComputedDoc";
@@ -55,7 +55,11 @@ type RootComponentOptions<
55
55
  & CustomEventsOption<TCustomEvents, keyof EventsDoc>
56
56
  & DataOption<TData, keyof PropertiesDoc>
57
57
  & StoreOption<TStore, keyof (PropertiesDoc & DataDoc)>
58
- & ComputedOption<TComputed, keyof (PropertiesDoc & DataDoc & StoreDoc)>
58
+ & ComputedOption<
59
+ TComputed,
60
+ keyof (PropertiesDoc & DataDoc & StoreDoc),
61
+ { data: ComputeObject<DataDoc & Required<PropertiesDoc> & StoreDoc & ComputedDoc & IInjectData> }
62
+ >
59
63
  & PageLifetimesOption<TIsPage, PropertiesDoc>
60
64
  & LifetimesOption
61
65
  & WatchOption<
@@ -1,9 +1,9 @@
1
- import type { V } from "hry-types";
1
+ import type { G } from "hry-types";
2
2
  export type SubComputedOption<
3
3
  TComputed extends object,
4
- legal extends Record<PropertyKey, unknown>,
4
+ legal extends PropertyKey,
5
5
  > = {
6
6
  computed?:
7
7
  & TComputed
8
- & V.IllegalFieldValidator<TComputed, keyof legal, 0, "", "重复或无效的字段">;
8
+ & G.IllegalFieldValidator<TComputed, legal, 0, "", "重复或无效的字段">;
9
9
  };
@@ -22,7 +22,7 @@ type OnlyPropsCompDoc = ComponentDoc<{
22
22
  };
23
23
  }>;
24
24
 
25
- // 2 去除inhrit和data字段后无组件字段约束时,写任何字段都报错
25
+ // 2 去除inhrit和data字段后无组件字段约束时,只可写内部字段
26
26
  SubComponent<{}, OnlyPropsCompDoc>()({
27
27
  inherit: {
28
28
  aaa_str: "wxml",
@@ -31,8 +31,9 @@ SubComponent<{}, OnlyPropsCompDoc>()({
31
31
  aaa_num: 123,
32
32
  },
33
33
  computed: {
34
- // @ts-expect-error ⚠️"重复或无效的字段"⚠️
35
34
  _aaa_xxx() {},
35
+ // @ts-expect-error 只可写内部字段
36
+ aaa_yyy() {},
36
37
  },
37
38
  });
38
39
 
@@ -1,16 +1,15 @@
1
- import type { V } from "hry-types";
2
- import type { InnerFields } from "../../../types/InnerData";
1
+ import type { G } from "hry-types";
3
2
 
4
- export type SubDataOption<TSubData extends object, legalKeys extends PropertyKey, TPrefix extends string> = {
3
+ export type SubDataOption<TSubData extends object, legalKeys extends PropertyKey> = {
5
4
  /**
6
5
  * 可写子组件所需数据和内部公共数据
7
6
  * 非法字段检测和与Inherit字段的重复检测
8
7
  */
9
8
  data?:
10
9
  & TSubData
11
- & V.IllegalFieldValidator<
10
+ & G.IllegalFieldValidator<
12
11
  TSubData,
13
- legalKeys | InnerFields<TPrefix>,
12
+ legalKeys,
14
13
  0,
15
14
  "",
16
15
  "子组件无需此字段或与Inherit字段重复"
@@ -39,17 +39,6 @@ SubComponent<{ data: { _num: number } }, CompDoc>()({
39
39
  },
40
40
  });
41
41
 
42
- //
43
- SubComponent<{ data: { _num: number } }, CompDoc>()({
44
- inherit: {
45
- aaa_str: "wxml",
46
- },
47
- data: {
48
- // 4 可写isReady 特许字段 ExtraFields
49
- aaa_isReady: false,
50
- },
51
- });
52
-
53
42
  SubComponent<{}, CompDoc>()({
54
43
  data: {
55
44
  aaa_str: "a",
@@ -1,4 +1,4 @@
1
- import type { V } from "hry-types";
1
+ import type { G } from "hry-types";
2
2
 
3
3
  export type SubEventsOption<TSubEvents, SubEventsDoc extends object, legalKeys extends PropertyKey> = {
4
4
  /**
@@ -8,5 +8,5 @@ export type SubEventsOption<TSubEvents, SubEventsDoc extends object, legalKeys e
8
8
  */
9
9
  events?:
10
10
  & TSubEvents
11
- & V.IllegalFieldValidator<SubEventsDoc, legalKeys>;
11
+ & G.IllegalFieldValidator<SubEventsDoc, legalKeys>;
12
12
  };
@@ -1,4 +1,4 @@
1
- import type { V } from "hry-types";
1
+ import type { G } from "hry-types";
2
2
 
3
3
  export type SubInheritOption<TInherit extends object, legalKeys extends PropertyKey> = {
4
4
  /**
@@ -8,7 +8,7 @@ export type SubInheritOption<TInherit extends object, legalKeys extends Property
8
8
  */
9
9
  inherit?:
10
10
  & TInherit
11
- & V.IllegalFieldValidator<
11
+ & G.IllegalFieldValidator<
12
12
  TInherit,
13
13
  legalKeys,
14
14
  0,
@@ -0,0 +1,22 @@
1
+ import type { View } from "../../../../../thirdLib/wm";
2
+ import type { RootComponentDoc } from "../../../../RootComponent/RootComponentDoc";
3
+ import { SubComponent } from "../../..";
4
+
5
+ type RootDoc = RootComponentDoc<{
6
+ events: {
7
+ RootE1: () => string;
8
+ };
9
+ }>;
10
+
11
+ // 实例中只存在RootDoc和自身的methods字段
12
+ SubComponent<RootDoc, View>()({
13
+ lifetimes: {
14
+ created() {
15
+ // @ts-expect-error 不存在的方法 (Root事件方法不可调用)
16
+ this.RootE1;
17
+
18
+ // @ts-expect-error 不存在的方法
19
+ this.otherMethods();
20
+ },
21
+ },
22
+ });
@@ -0,0 +1,73 @@
1
+ import { Checking, type Test } from "hry-types";
2
+ import type { ComponentDoc } from "../../../../DefineComponent/ReturnType/ComponentDoc";
3
+ import type { Mock_User } from "../../../../RootComponent/Properties/test/normalRequired.test";
4
+ import type { RootComponentDoc } from "../../../../RootComponent/RootComponentDoc";
5
+ import { SubComponent } from "../../..";
6
+
7
+ type RootDoc = RootComponentDoc<{
8
+ properties: {
9
+ Pstr: string;
10
+ Pobj: Mock_User | null;
11
+ PoptionalObj?: Mock_User;
12
+ };
13
+ data: {
14
+ Dnum: number;
15
+ };
16
+ computed: {
17
+ Cnum: number;
18
+ };
19
+ methods: {
20
+ RootM: () => number;
21
+ };
22
+ customEvents: {
23
+ RootCus: string;
24
+ };
25
+ events: {
26
+ RootE1: () => string;
27
+ };
28
+ }>;
29
+
30
+ type CompDoc = ComponentDoc<{
31
+ properties: {
32
+ aaa_str: string;
33
+ };
34
+ customEvents: {
35
+ aaa_num: number;
36
+ };
37
+ }>;
38
+
39
+ SubComponent<RootDoc, CompDoc>()({
40
+ data: {
41
+ aaa_str: "str",
42
+ _aaa_num: 123,
43
+ },
44
+ computed: {
45
+ _aaa_isReady() {
46
+ return false;
47
+ },
48
+ },
49
+
50
+ lifetimes: {
51
+ created() {
52
+ Checking<
53
+ typeof this.cloneData,
54
+ {
55
+ // inheritData
56
+ injectTheme: "dark" | "light" | undefined;
57
+ injectStr: string;
58
+ // RootData
59
+ Pstr: string;
60
+ Pobj: Mock_User | null;
61
+ PoptionalObj: Mock_User;
62
+ Dnum: number;
63
+ Cnum: number;
64
+ // 自身Data类型与CompDoc类型相同
65
+ aaa_str: string;
66
+ _aaa_isReady: boolean;
67
+ _aaa_num: number;
68
+ },
69
+ Test.Pass
70
+ >;
71
+ },
72
+ },
73
+ });
@@ -1,4 +1,4 @@
1
- import type { V } from "hry-types";
1
+ import type { G } from "hry-types";
2
2
  import type { PrefixValidator } from "hry-types/src/Generic/PrefixValidator";
3
3
  import type { SubMethodsConstraint } from "./SubMethodsConstraint";
4
4
 
@@ -13,5 +13,5 @@ export type SubMethodsOption<
13
13
  methods?:
14
14
  & TSubMethods
15
15
  & PrefixValidator<TSubMethods, TPrefix>
16
- & V.DuplicateFieldValidator<TSubMethods, ExcludedKeys>;
16
+ & G.DuplicateFieldValidator<TSubMethods, ExcludedKeys>;
17
17
  };
@@ -1,7 +1,6 @@
1
- import type { V } from "hry-types";
2
- import type { InnerFields } from "../../../types/InnerData";
1
+ import type { G } from "hry-types";
3
2
 
4
- export type SubStoreOption<TSubStore extends object, legalKeys extends PropertyKey, TPrefix extends string> = {
3
+ export type SubStoreOption<TSubStore extends object, legalKeys extends PropertyKey> = {
5
4
  /**
6
5
  * 全局响应式数据字段,全局store对应数据变化实例对应数据自动setData。
7
6
  * 约束为组件properties字段去除inherit和data的剩余字段和内部字段
@@ -18,10 +17,10 @@ export type SubStoreOption<TSubStore extends object, legalKeys extends PropertyK
18
17
  */
19
18
  store?:
20
19
  & TSubStore
21
- & V.IllegalFieldValidator<
20
+ & G.IllegalFieldValidator<
22
21
  TSubStore,
23
22
  // legalKeys,
24
- legalKeys | InnerFields<TPrefix>,
23
+ legalKeys,
25
24
  0,
26
25
  "",
27
26
  "与inherit和data字段重复或前缀错误"
@@ -25,7 +25,6 @@ SubComponent<{
25
25
  },
26
26
  data: {
27
27
  aaa_num: 20,
28
- aaa_isReady: false,
29
28
  },
30
29
  store: {
31
30
  // @ts-expect-error 1 与 inherit 字段重复
@@ -34,9 +33,5 @@ SubComponent<{
34
33
  aaa_num: () => user.age,
35
34
  // @ts-expect-error 3 超出约束字段
36
35
  num: () => user.age,
37
- // @ts-expect-error 4 于data字段重复
38
- aaa_isReady() {
39
- return false;
40
- },
41
36
  },
42
37
  });
@@ -25,13 +25,6 @@ SubComponent<{}, DocA>()({
25
25
  SubComponent<{}, DocA, "a">()({
26
26
  store: {
27
27
  // 2 可写内部字段
28
- _aaaA_xxxxxx: () => user.age,
29
- },
30
- });
31
-
32
- SubComponent<{}, DocA, "a">()({
33
- store: {
34
- // 3 可写特许字段
35
- aaaA_isReady: () => false,
28
+ _aaaA_xxx: () => user.age,
36
29
  },
37
30
  });
@@ -6,7 +6,7 @@ import type { ReplacePrefix } from "../../types/ReplacePrefix";
6
6
  import type { ComponentDoc } from "../DefineComponent/ReturnType/ComponentDoc";
7
7
 
8
8
  import type { Func } from "hry-types/src/Misc/Func";
9
- import type { Extra } from "../../types/Extra";
9
+
10
10
  import type { InnerFields } from "../../types/InnerData";
11
11
  import type { WMCompOtherOption } from "../../types/OfficialTypeAlias";
12
12
  import type { Replace } from "../../types/Replace";
@@ -57,28 +57,28 @@ type Options<
57
57
  SubComputedDoc extends object,
58
58
  SubEventsDoc extends object,
59
59
  SubMethodsDoc extends object,
60
+ CompDocKeys extends PropertyKey = keyof CurrentCompDoc["properties"],
60
61
  > =
61
- & SubInheritOption<TInherit, keyof CurrentCompDoc["properties"]>
62
+ & SubInheritOption<TInherit, CompDocKeys>
62
63
  & SubDataOption<
63
64
  TSubData,
64
- Exclude<keyof CurrentCompDoc["properties"] | keyof Extra<Prefix>, (keyof InheritDoc)>,
65
- Prefix
65
+ // 合法的配置
66
+ Exclude<CompDocKeys, (keyof InheritDoc)> | InnerFields<Prefix>
66
67
  >
67
68
  & SubStoreOption<
68
69
  TSubStore,
69
- Exclude<keyof CurrentCompDoc["properties"] | keyof Extra<Prefix>, (keyof (InheritDoc & SubDataDoc))>,
70
- Prefix
70
+ // 合法的配置
71
+ Exclude<CompDocKeys, (keyof (InheritDoc & SubDataDoc))> | InnerFields<Prefix>
71
72
  >
72
73
  & SubComputedOption<
73
74
  TSubComputed,
74
- // AllRootDataDoc & SubDataDoc & SubDataDoc & SubComputedDoc,
75
75
  // 合法的配置
76
- Omit<CurrentCompDoc["properties"], (keyof (InheritDoc & SubDataDoc & SubStoreDoc))>
76
+ Exclude<CompDocKeys, (keyof (InheritDoc & SubDataDoc & SubStoreDoc))> | InnerFields<Prefix>
77
77
  >
78
78
  // 无需与根组件的events字段重复检测,因为根组件多了bubbles字段,一定不会重复
79
79
  & SubEventsOption<TEvents, SubEventsDoc, keyof SubEventsConstraint<CurrentCompDoc>>
80
80
  & SubMethodsOption<TSubMethods, Prefix, keyof (CurrentCompDoc["customEvents"] & SubEventsDoc)>
81
- & SubPageLifetimesOption<IsPage, RootDoc["properties"] & {}>
81
+ & SubPageLifetimesOption<IsPage, NonNullable<RootDoc["properties"]>>
82
82
  & SubLifetimesOption
83
83
  & SubWatchOption<
84
84
  & SubComputedDoc
@@ -100,7 +100,7 @@ type Options<
100
100
  SubMethodsDoc & RootDoc["methods"],
101
101
  Replace<SubDataDoc, Required<CurrentCompDoc["properties"]>>,
102
102
  AllRootDataDoc & Replace<SubDataDoc & SubComputedDoc & SubStoreDoc, Required<CurrentCompDoc["properties"]>>,
103
- RootDoc["customEvents"] & {},
103
+ NonNullable<RootDoc["customEvents"]>,
104
104
  SubStoreDoc
105
105
  >
106
106
  >;
@@ -131,38 +131,49 @@ type SubComponentConstructor<
131
131
  TInherit extends InheritConstraint<AllRootDataDoc, CurrentCompDoc>,
132
132
  TSubData extends SubDataConstraint<
133
133
  & Omit<Required<CurrentCompDoc["properties"]>, keyof InheritDoc>
134
- & Extra<CurrentPrefix> // 加入特许字段 isReady
135
134
  & Record<InnerFields<CurrentPrefix>, unknown> // 内部字段
136
135
  >,
137
136
  TSubStore extends SubStoreConstraint<
138
- & Omit<Required<CurrentCompDoc["properties"]> & Extra<CurrentPrefix>, keyof (InheritDoc & SubDataDoc)>
137
+ & Omit<Required<CurrentCompDoc["properties"]>, keyof (InheritDoc & SubDataDoc)>
139
138
  & Record<InnerFields<CurrentPrefix>, unknown> // 内部字段
140
139
  >,
141
140
  TEvents extends SubEventsConstraint<CurrentCompDoc>,
142
141
  // 加默认值计算字段无提示且需要手写返回类型,不加watch无法对computed监控
143
142
  TSubComputed extends SubComputedConstraint<
144
- & Omit<Required<CurrentCompDoc["properties"]>, keyof (InheritDoc & SubDataDoc & SubStoreDoc)>
145
- & Extra<CurrentPrefix> // 加入特许字段 isReady
143
+ & Omit<
144
+ Required<CurrentCompDoc["properties"]>,
145
+ keyof (InheritDoc & SubDataDoc & SubStoreDoc)
146
+ >
146
147
  & Record<InnerFields<CurrentPrefix>, unknown> // 内部字段
147
- > = {},
148
+ >,
148
149
  TSubMethods extends SubMethodsConstraint = {},
149
150
  InheritDoc extends object = IfExtends<InheritConstraint<AllRootDataDoc, CurrentCompDoc>, TInherit, {}, TInherit>,
150
151
  SubDataDoc extends object = IfExtends<
151
- SubDataConstraint<Omit<Required<CurrentCompDoc["properties"]>, keyof InheritDoc>>,
152
+ SubDataConstraint<
153
+ & Omit<Required<CurrentCompDoc["properties"]>, keyof InheritDoc>
154
+ & Record<InnerFields<CurrentPrefix>, unknown>
155
+ >,
152
156
  TSubData,
153
157
  {},
154
158
  TSubData
155
159
  >,
156
160
  SubStoreDoc extends object = IfExtends<
157
- SubStoreConstraint<Omit<Required<CurrentCompDoc["properties"]>, keyof (InheritDoc & SubDataDoc)>>,
161
+ SubStoreConstraint<
162
+ & Omit<Required<CurrentCompDoc["properties"]>, keyof (InheritDoc & SubDataDoc)>
163
+ & Record<InnerFields<CurrentPrefix>, unknown>
164
+ >,
158
165
  TSubStore,
159
166
  {},
160
- { [k in keyof TSubStore]: ReturnType<TSubStore[k] & {}> }
167
+ { [k in keyof TSubStore]: ReturnType<NonNullable<TSubStore[k]>> }
161
168
  >,
162
169
  // 无效的计算
163
170
  SubComputedDoc extends object = IfExtends<
164
171
  SubComputedConstraint<
165
- Omit<Required<CurrentCompDoc["properties"]>, keyof (InheritDoc & SubDataDoc & SubStoreDoc)>
172
+ & Omit<
173
+ Required<CurrentCompDoc["properties"]>,
174
+ keyof (InheritDoc & SubDataDoc & SubStoreDoc)
175
+ >
176
+ & Record<InnerFields<CurrentPrefix>, unknown> // 内部字段
166
177
  >,
167
178
  TSubComputed,
168
179
  {},
@@ -177,7 +188,7 @@ type SubComponentConstructor<
177
188
  SubMethodsDoc extends object = TSubMethods,
178
189
  // 缺失的必传字段(配置中inhrit,data,computed的字段不包含的必传字段)
179
190
  MissingRequiredField extends PropertyKey = Exclude<
180
- RequiredKeys<CurrentCompDoc["properties"] & {}>,
191
+ RequiredKeys<NonNullable<CurrentCompDoc["properties"]>>,
181
192
  keyof (
182
193
  & InheritDoc
183
194
  & SubDataDoc
@@ -213,7 +224,7 @@ type SubComponentConstructor<
213
224
  SubEventsDoc,
214
225
  SubMethodsDoc
215
226
  >,
216
- ): CreateSubComponentDoc<TOriginalCompDoc["customEvents"] & {}, SubEventsDoc, MissingRequiredField>;
227
+ ): CreateSubComponentDoc<NonNullable<TOriginalCompDoc["customEvents"]>, SubEventsDoc, MissingRequiredField>;
217
228
  };
218
229
 
219
230
  /**
@@ -1 +1 @@
1
- export type Extra<Prefix extends string> = Record<`${Prefix}_isReady`, boolean>;
1
+ // export type Extra<Prefix extends string> = Record<`${Prefix}_isReady`, boolean>;
@@ -1 +0,0 @@
1
- export type Extra<Prefix extends string> = Record<`${Prefix}_isReady`, boolean>;
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=Extra.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Extra.js","sourceRoot":"","sources":["../../src/types/Extra.ts"],"names":[],"mappings":""}