annil 1.5.15 → 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 +7 -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 +2 -2
  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 +3 -4
  21. package/package.json +4 -6
  22. package/src/api/DefineComponent/assignOptions/index.ts +14 -1
  23. package/src/api/RootComponent/Computed/ComputedOption.ts +6 -1
  24. package/src/api/RootComponent/Computed/GetComputedDoc.ts +3 -1
  25. package/src/api/RootComponent/Computed/test/error.test.ts +2 -2
  26. package/src/api/RootComponent/Computed/test/normal.test.ts +13 -11
  27. package/src/api/RootComponent/CustomEvents/CustomEventsOption.ts +3 -3
  28. package/src/api/RootComponent/Data/DataOption.ts +2 -2
  29. package/src/api/RootComponent/Data/test/normal.test.ts +2 -0
  30. package/src/api/RootComponent/Instance/RootComponentInstance.ts +4 -1
  31. package/src/api/RootComponent/Instance/test/cloneData/error.test.ts +31 -0
  32. package/src/api/RootComponent/Instance/test/cloneData/normal.test.ts +53 -0
  33. package/src/api/RootComponent/Methods/MethodsOption.ts +2 -2
  34. package/src/api/RootComponent/Properties/PropertiesOption.ts +2 -2
  35. package/src/api/RootComponent/Properties/test/normalRequired.test.ts +3 -3
  36. package/src/api/RootComponent/Store/StoreOption.ts +2 -2
  37. package/src/api/RootComponent/index.ts +6 -2
  38. package/src/api/SubComponent/SubComputed/SubComputedOption.ts +2 -2
  39. package/src/api/SubComponent/SubComputed/test/error.test.ts +3 -15
  40. package/src/api/SubComponent/SubComputed/test/normal.test.ts +0 -13
  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 +12 -12
  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,13 @@
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
+
7
14
  ## [1.5.15](https://github.com/missannil/annil/compare/v1.5.14...v1.5.15) (2024-01-15)
8
15
 
9
16
 
@@ -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";
1
+ import type { G } from "hry-types";
2
2
  export type SubComputedOption<TComputed extends object, legal extends PropertyKey> = {
3
- computed?: TComputed & V.IllegalFieldValidator<TComputed, legal, 0, "", "重复或无效的字段">;
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, CompDocKeys extends PropertyKey = keyof CurrentCompDoc["properties"]> = SubInheritOption<TInherit, CompDocKeys> & SubDataOption<TSubData, Exclude<CompDocKeys | keyof Extra<Prefix>, (keyof InheritDoc)>, Prefix> & SubStoreOption<TSubStore, Exclude<CompDocKeys | keyof Extra<Prefix>, (keyof (InheritDoc & SubDataDoc))>, Prefix> & SubComputedOption<TSubComputed, Exclude<CompDocKeys | keyof Extra<Prefix>, (keyof (InheritDoc & SubDataDoc & SubStoreDoc))>> & 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>>;
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"]> & Extra<CurrentPrefix>, keyof InheritDoc> & 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"]> & Extra<CurrentPrefix>, 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"]> & Extra<CurrentPrefix>, keyof InheritDoc> & Record<InnerFields<CurrentPrefix>, unknown>>, TSubData, {}, TSubData>, SubStoreDoc extends object = IfExtends<SubStoreConstraint<Omit<Required<CurrentCompDoc["properties"]> & Extra<CurrentPrefix>, keyof (InheritDoc & SubDataDoc)> & Record<InnerFields<CurrentPrefix>, unknown>>, TSubStore, {}, {
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, {}, {
43
42
  [k in keyof TSubStore]: ReturnType<NonNullable<TSubStore[k]>>;
44
- }>, SubComputedDoc extends object = IfExtends<SubComputedConstraint<Omit<Required<CurrentCompDoc["properties"]> & Extra<CurrentPrefix>, 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>;
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 = {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "annil",
3
- "version": "1.5.15",
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
4
  legal extends PropertyKey,
5
5
  > = {
6
6
  computed?:
7
7
  & TComputed
8
- & V.IllegalFieldValidator<TComputed, 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
 
@@ -48,16 +49,3 @@ SubComponent<{}, OnlyPropsCompDoc>()({
48
49
  },
49
50
  },
50
51
  });
51
-
52
- // 4 类型错误
53
- SubComponent<{}, OnlyPropsCompDoc>()({
54
- data: {
55
- aaa_isReady: false,
56
- },
57
- computed: {
58
- // @ts-ignore 重复的字段
59
- aaa_isReady() {
60
- return true;
61
- },
62
- },
63
- });
@@ -140,18 +140,5 @@ SubComponent<Root, $aaa>()({
140
140
  aaa_str(): string {
141
141
  return this.data.str;
142
142
  },
143
-
144
- aaa_isReady() {
145
- return false;
146
- },
147
- },
148
- });
149
-
150
- SubComponent<Root, $aaa>()({
151
- computed: {
152
- // 可以写isReady字段 ExtraFields
153
- aaa_isReady() {
154
- return false;
155
- },
156
143
  },
157
144
  });
@@ -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";
@@ -62,18 +62,18 @@ type Options<
62
62
  & SubInheritOption<TInherit, CompDocKeys>
63
63
  & SubDataOption<
64
64
  TSubData,
65
- Exclude<CompDocKeys | keyof Extra<Prefix>, (keyof InheritDoc)>,
66
- Prefix
65
+ // 合法的配置
66
+ Exclude<CompDocKeys, (keyof InheritDoc)> | InnerFields<Prefix>
67
67
  >
68
68
  & SubStoreOption<
69
69
  TSubStore,
70
- Exclude<CompDocKeys | keyof Extra<Prefix>, (keyof (InheritDoc & SubDataDoc))>,
71
- Prefix
70
+ // 合法的配置
71
+ Exclude<CompDocKeys, (keyof (InheritDoc & SubDataDoc))> | InnerFields<Prefix>
72
72
  >
73
73
  & SubComputedOption<
74
74
  TSubComputed,
75
75
  // 合法的配置
76
- Exclude<CompDocKeys | keyof Extra<Prefix>, (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>>
@@ -130,18 +130,18 @@ type SubComponentConstructor<
130
130
  <
131
131
  TInherit extends InheritConstraint<AllRootDataDoc, CurrentCompDoc>,
132
132
  TSubData extends SubDataConstraint<
133
- & Omit<Required<CurrentCompDoc["properties"]> & Extra<CurrentPrefix>, keyof InheritDoc>
133
+ & Omit<Required<CurrentCompDoc["properties"]>, keyof InheritDoc>
134
134
  & Record<InnerFields<CurrentPrefix>, unknown> // 内部字段
135
135
  >,
136
136
  TSubStore extends SubStoreConstraint<
137
- & Omit<Required<CurrentCompDoc["properties"]> & Extra<CurrentPrefix>, keyof (InheritDoc & SubDataDoc)>
137
+ & Omit<Required<CurrentCompDoc["properties"]>, keyof (InheritDoc & SubDataDoc)>
138
138
  & Record<InnerFields<CurrentPrefix>, unknown> // 内部字段
139
139
  >,
140
140
  TEvents extends SubEventsConstraint<CurrentCompDoc>,
141
141
  // 加默认值计算字段无提示且需要手写返回类型,不加watch无法对computed监控
142
142
  TSubComputed extends SubComputedConstraint<
143
143
  & Omit<
144
- Required<CurrentCompDoc["properties"]> & Extra<CurrentPrefix>,
144
+ Required<CurrentCompDoc["properties"]>,
145
145
  keyof (InheritDoc & SubDataDoc & SubStoreDoc)
146
146
  >
147
147
  & Record<InnerFields<CurrentPrefix>, unknown> // 内部字段
@@ -150,7 +150,7 @@ type SubComponentConstructor<
150
150
  InheritDoc extends object = IfExtends<InheritConstraint<AllRootDataDoc, CurrentCompDoc>, TInherit, {}, TInherit>,
151
151
  SubDataDoc extends object = IfExtends<
152
152
  SubDataConstraint<
153
- & Omit<Required<CurrentCompDoc["properties"]> & Extra<CurrentPrefix>, keyof InheritDoc>
153
+ & Omit<Required<CurrentCompDoc["properties"]>, keyof InheritDoc>
154
154
  & Record<InnerFields<CurrentPrefix>, unknown>
155
155
  >,
156
156
  TSubData,
@@ -159,7 +159,7 @@ type SubComponentConstructor<
159
159
  >,
160
160
  SubStoreDoc extends object = IfExtends<
161
161
  SubStoreConstraint<
162
- & Omit<Required<CurrentCompDoc["properties"]> & Extra<CurrentPrefix>, keyof (InheritDoc & SubDataDoc)>
162
+ & Omit<Required<CurrentCompDoc["properties"]>, keyof (InheritDoc & SubDataDoc)>
163
163
  & Record<InnerFields<CurrentPrefix>, unknown>
164
164
  >,
165
165
  TSubStore,
@@ -170,7 +170,7 @@ type SubComponentConstructor<
170
170
  SubComputedDoc extends object = IfExtends<
171
171
  SubComputedConstraint<
172
172
  & Omit<
173
- Required<CurrentCompDoc["properties"]> & Extra<CurrentPrefix>,
173
+ Required<CurrentCompDoc["properties"]>,
174
174
  keyof (InheritDoc & SubDataDoc & SubStoreDoc)
175
175
  >
176
176
  & Record<InnerFields<CurrentPrefix>, unknown> // 内部字段
@@ -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":""}