annil 1.7.5-beta.4 → 1.7.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +14 -0
- package/README.md +45 -38
- package/dist/api/DefineComponent/ReturnType/ComponentType.d.ts +18 -0
- package/dist/api/DefineComponent/ReturnType/ComponentType.js +2 -0
- package/dist/api/DefineComponent/ReturnType/ComponentType.js.map +1 -0
- package/dist/api/DefineComponent/ReturnType/CreateComponentDoc.d.ts +3 -3
- package/dist/api/DefineComponent/ReturnType/CreatePageDoc.d.ts +2 -2
- package/dist/api/DefineComponent/ReturnType/GetCustomEventDocOfSubDoc.d.ts +3 -3
- package/dist/api/DefineComponent/RootComponent/RootComponentOption.d.ts +2 -2
- package/dist/api/DefineComponent/SubComponents/SubComponentsOption.d.ts +2 -2
- package/dist/api/DefineComponent/index.d.ts +5 -5
- package/dist/api/DefineComponent/normalizeOptions/computedWatchHandle/computedUpdater.js +2 -2
- package/dist/api/DefineComponent/normalizeOptions/computedWatchHandle/computedUpdater.js.map +1 -1
- package/dist/api/DefineComponent/normalizeOptions/computedWatchHandle/getPropertiesValue.js +1 -0
- package/dist/api/DefineComponent/normalizeOptions/computedWatchHandle/getPropertiesValue.js.map +1 -1
- package/dist/api/DefineComponent/normalizeOptions/computedWatchHandle/index.js +2 -2
- package/dist/api/DefineComponent/normalizeOptions/computedWatchHandle/index.js.map +1 -1
- package/dist/api/DefineComponent/normalizeOptions/index.js +1 -1
- package/dist/api/DefineComponent/normalizeOptions/index.js.map +1 -1
- package/dist/api/DefineComponent/normalizeOptions/internalFieldProtection.js +1 -0
- package/dist/api/DefineComponent/normalizeOptions/internalFieldProtection.js.map +1 -1
- package/dist/api/RootComponent/Events/EventsConstraint.d.ts +4 -4
- package/dist/api/RootComponent/PageLifetimes/PageLifetimesOption.d.ts +3 -1
- package/dist/api/RootComponent/Properties/GetPropertiesDoc.d.ts +2 -1
- package/dist/api/RootComponent/Properties/GetRequiredDoc.d.ts +2 -2
- package/dist/api/RootComponent/{RootComponentDoc.d.ts → RootComponentType.d.ts} +16 -15
- package/dist/api/RootComponent/RootComponentType.js +2 -0
- package/dist/api/RootComponent/RootComponentType.js.map +1 -0
- package/dist/api/RootComponent/index.d.ts +5 -4
- package/dist/api/RootComponent/index.js.map +1 -1
- package/dist/api/SubComponent/{SubComponentDoc.d.ts → SubComponentType.d.ts} +3 -3
- package/dist/api/SubComponent/SubComponentType.js +2 -0
- package/dist/api/SubComponent/SubComponentType.js.map +1 -0
- package/dist/api/SubComponent/SubComputed/SubComputedOption.d.ts +2 -2
- package/dist/api/SubComponent/SubEvents/SubEventsConstraint.d.ts +2 -2
- package/dist/api/SubComponent/SubInherit/SubInheritConstraint.d.ts +2 -2
- package/dist/api/SubComponent/index.d.ts +9 -6
- package/dist/api/SubComponent/index.js.map +1 -1
- package/dist/behaviors/BStore.d.ts +1 -1
- package/dist/behaviors/BStore.js +33 -18
- package/dist/behaviors/BStore.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/types/CreateComponentType.d.ts +23 -2
- package/dist/types/ExtendComponentType.d.ts +34 -0
- package/dist/types/ExtendComponentType.js +6 -0
- package/dist/types/ExtendComponentType.js.map +1 -0
- package/dist/types/GetComponentPrefix.d.ts +2 -2
- package/dist/types/RemoveNullOfRequired.d.ts +7 -0
- package/dist/types/RemoveNullOfRequired.js +2 -0
- package/dist/types/RemoveNullOfRequired.js.map +1 -0
- package/dist/types/ReplacePrefix.d.ts +2 -2
- package/dist/utils/assertNonNullable.js +1 -0
- package/dist/utils/assertNonNullable.js.map +1 -1
- package/dist/{api/DefineComponent/normalizeOptions/computedWatchHandle/isEqual.d.ts → utils/deepEqual.d.ts} +1 -1
- package/dist/{api/DefineComponent/normalizeOptions/computedWatchHandle/isEqual.js → utils/deepEqual.js} +3 -3
- package/dist/utils/deepEqual.js.map +1 -0
- package/package.json +2 -3
- package/src/api/DefineComponent/NameOrPage/test/error.test.ts +6 -6
- package/src/api/DefineComponent/ReturnType/{ComponentDoc.ts → ComponentType.ts} +6 -7
- package/src/api/DefineComponent/ReturnType/CreateComponentDoc.ts +4 -4
- package/src/api/DefineComponent/ReturnType/CreatePageDoc.ts +2 -2
- package/src/api/DefineComponent/ReturnType/GetCustomEventDocOfSubDoc.ts +3 -3
- package/src/api/DefineComponent/ReturnType/GetPropertiesDocOfSubDoc.ts +3 -3
- package/src/api/DefineComponent/ReturnType/test/normalComponentDoc.test.ts +5 -5
- package/src/api/DefineComponent/RootComponent/RootComponentOption.ts +2 -2
- package/src/api/DefineComponent/SubComponents/SubComponentsOption.ts +2 -2
- package/src/api/DefineComponent/SubComponents/test/normal.test.ts +3 -3
- package/src/api/DefineComponent/index.ts +7 -7
- package/src/api/DefineComponent/normalizeOptions/computedWatchHandle/computedUpdater.ts +2 -2
- package/src/api/DefineComponent/normalizeOptions/computedWatchHandle/getPropertiesValue.ts +1 -0
- package/src/api/DefineComponent/normalizeOptions/computedWatchHandle/index.ts +2 -2
- package/src/api/DefineComponent/normalizeOptions/index.ts +1 -1
- package/src/api/DefineComponent/normalizeOptions/internalFieldProtection.ts +1 -0
- package/src/api/RootComponent/Computed/test/normal.test.ts +20 -0
- package/src/api/RootComponent/Events/EventsConstraint.ts +5 -5
- package/src/api/RootComponent/Events/test/normal.test.ts +5 -5
- package/src/api/RootComponent/Instance/test/properties/mormal.test.ts +2 -4
- package/src/api/RootComponent/PageLifetimes/PageLifetimesOption.ts +4 -1
- package/src/api/RootComponent/PageLifetimes/test/normal.test.ts +26 -0
- package/src/api/RootComponent/Properties/GetOptionalDoc.ts +4 -4
- package/src/api/RootComponent/Properties/GetPropertiesDoc.ts +2 -1
- package/src/api/RootComponent/Properties/GetRequiredDoc.ts +9 -23
- package/src/api/RootComponent/{RootComponentDoc.ts → RootComponentType.ts} +16 -15
- package/src/api/RootComponent/index.ts +10 -4
- package/src/api/SubComponent/{SubComponentDoc.ts → SubComponentType.ts} +3 -3
- package/src/api/SubComponent/SubComputed/SubComputedOption.ts +2 -0
- package/src/api/SubComponent/SubComputed/test/error.test.ts +3 -3
- package/src/api/SubComponent/SubComputed/test/normal.test.ts +5 -5
- package/src/api/SubComponent/SubData/test/error.test.ts +3 -3
- package/src/api/SubComponent/SubData/test/normal.test.ts +2 -2
- package/src/api/SubComponent/SubEvents/SubEventsConstraint.ts +2 -2
- package/src/api/SubComponent/SubEvents/test/error.test.ts +3 -3
- package/src/api/SubComponent/SubEvents/test/normal.test.ts +2 -2
- package/src/api/SubComponent/SubInherit/SubInheritConstraint.ts +2 -2
- package/src/api/SubComponent/SubInherit/test/error.test.ts +6 -6
- package/src/api/SubComponent/SubInherit/test/normal.test.ts +18 -4
- package/src/api/SubComponent/SubInstance/test/error.test.ts +2 -2
- package/src/api/SubComponent/SubInstance/test/normal.test.ts +4 -4
- package/src/api/SubComponent/SubMethods/test/error.test.ts +4 -4
- package/src/api/SubComponent/SubMethods/test/normarl.test.ts +4 -4
- package/src/api/SubComponent/SubReturnType/test/error.test.ts +2 -2
- package/src/api/SubComponent/SubReturnType/test/normal.test.ts +2 -2
- package/src/api/SubComponent/SubStore/test/error.test.ts +2 -2
- package/src/api/SubComponent/SubStore/test/normal.test.ts +2 -2
- package/src/api/SubComponent/SubWatch/test/WatchComputed.test.ts +4 -4
- package/src/api/SubComponent/SubWatch/test/WatchRootData.test.ts +2 -2
- package/src/api/SubComponent/SubWatch/test/WatchSubData.test.ts +2 -2
- package/src/api/SubComponent/index.ts +17 -11
- package/src/behaviors/BStore.ts +37 -23
- package/src/index.ts +2 -2
- package/src/types/CreateComponentType.ts +23 -2
- package/src/types/ExtendComponentType.ts +60 -0
- package/src/types/GetComponentPrefix.ts +2 -2
- package/src/types/GetPropertiesDuplicatedKeys.ts +3 -3
- package/src/types/ReplacePrefix.ts +2 -2
- package/src/utils/assertNonNullable.ts +1 -0
- package/src/{api/DefineComponent/normalizeOptions/computedWatchHandle/isEqual.ts → utils/deepEqual.ts} +2 -3
- package/dist/api/DefineComponent/ReturnType/ComponentDoc.d.ts +0 -18
- package/dist/api/DefineComponent/ReturnType/ComponentDoc.js +0 -2
- package/dist/api/DefineComponent/ReturnType/ComponentDoc.js.map +0 -1
- package/dist/api/DefineComponent/normalizeOptions/computedWatchHandle/isEqual.js.map +0 -1
- package/dist/api/RootComponent/RootComponentDoc.js +0 -2
- package/dist/api/RootComponent/RootComponentDoc.js.map +0 -1
- package/dist/api/SubComponent/SubComponentDoc.js +0 -2
- package/dist/api/SubComponent/SubComponentDoc.js.map +0 -1
- package/dist/types/DocAssign.d.ts +0 -10
- package/dist/types/DocAssign.js +0 -6
- package/dist/types/DocAssign.js.map +0 -1
- package/src/types/DocAssign.ts +0 -36
- package/tsconfig.json +0 -23
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { IfExtends } from "hry-types/src/Any/IfExtends";
|
|
2
|
-
import type {
|
|
2
|
+
import type { ComponentType } from "../api/DefineComponent/ReturnType/ComponentType";
|
|
3
3
|
// import type { ComponentDoc } from "../api/DefineComponent/CreateDoc/ComponentDoc";
|
|
4
4
|
|
|
5
5
|
type _ReplacePrefix<O, TPrefix extends string> = {
|
|
@@ -11,7 +11,7 @@ type _ReplacePrefix<O, TPrefix extends string> = {
|
|
|
11
11
|
* @param TComponentDoc - ComponentDoc
|
|
12
12
|
* @returns ComponentDoc
|
|
13
13
|
*/
|
|
14
|
-
export type ReplacePrefix<TComponentDoc extends
|
|
14
|
+
export type ReplacePrefix<TComponentDoc extends ComponentType, TPrefix extends string = ""> =
|
|
15
15
|
& IfExtends<
|
|
16
16
|
unknown,
|
|
17
17
|
TComponentDoc["properties"],
|
|
@@ -3,6 +3,7 @@ import type { IfContains } from "hry-types/src/Any/IfContains";
|
|
|
3
3
|
export function assertNonNullable<T>(
|
|
4
4
|
value: IfContains<T, null | undefined, T, "参数类型必须包含 null 或 undefined">,
|
|
5
5
|
): NonNullable<T> {
|
|
6
|
+
/* istanbul ignore next */
|
|
6
7
|
if (value === null || value === undefined) {
|
|
7
8
|
throw new Error(`${value} should not be null or undefined`);
|
|
8
9
|
}
|
|
@@ -30,14 +30,13 @@ function isSamePattern(a: RegExp, b: RegExp) {
|
|
|
30
30
|
* 两个函数使用toString()比较
|
|
31
31
|
* 支持Date,RegExp
|
|
32
32
|
*/
|
|
33
|
-
export function
|
|
33
|
+
export function deepEqual(a: unknown, b: unknown) {
|
|
34
34
|
// 如果两个值是原始类型或null,直接用Object.is比较
|
|
35
35
|
if (a === null || b === null || typeof a !== "object" || typeof b !== "object") {
|
|
36
36
|
if (typeof a !== "function" || typeof b !== "function") {
|
|
37
37
|
return Object.is(a, b);
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
|
-
|
|
41
40
|
// 如果两个值是对象类型,先判断它们的类型、构造函数和属性数量是否相同
|
|
42
41
|
if (!isSameType(a, b) || a.constructor !== b.constructor || !isSameSize(a, b)) {
|
|
43
42
|
return false;
|
|
@@ -67,7 +66,7 @@ export function isEqual(a: unknown, b: unknown) {
|
|
|
67
66
|
for (const key of keysA) {
|
|
68
67
|
if (keysB.includes(key)) {
|
|
69
68
|
// @ts-ignore
|
|
70
|
-
if (!
|
|
69
|
+
if (!deepEqual(a[key], b[key])) {
|
|
71
70
|
return false;
|
|
72
71
|
}
|
|
73
72
|
} else {
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
type PrefixKeys = `${string}_${string}`;
|
|
2
|
-
type _ComponentDoc = {
|
|
3
|
-
properties?: Record<PrefixKeys, any>;
|
|
4
|
-
customEvents?: Record<PrefixKeys, any>;
|
|
5
|
-
};
|
|
6
|
-
type Error = "{ properties?: Record<PrefixKeys, any>; customEvents?: Record<PrefixKeys, any>;}";
|
|
7
|
-
type _Validator<O> = keyof O extends keyof _ComponentDoc ? keyof (O["properties"] & O["customEvents"]) extends PrefixKeys ? _ComponentDoc : Error : Error;
|
|
8
|
-
/**
|
|
9
|
-
* RootComponent Api 返回的类型
|
|
10
|
-
* ```ts
|
|
11
|
-
* RootComponentDoc = {
|
|
12
|
-
* properties?: Record<PrefixKeys, any>;
|
|
13
|
-
* customEvents?: Record<PrefixKeys, any>;
|
|
14
|
-
* };
|
|
15
|
-
* ```
|
|
16
|
-
*/
|
|
17
|
-
export type ComponentDoc<O extends _Validator<O> = _ComponentDoc> = O;
|
|
18
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ComponentDoc.js","sourceRoot":"","sources":["../../../../src/api/DefineComponent/ReturnType/ComponentDoc.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"isEqual.js","sourceRoot":"","sources":["../../../../../src/api/DefineComponent/normalizeOptions/computedWatchHandle/isEqual.ts"],"names":[],"mappings":"AAAA,SAAS,UAAU,CAAC,CAAS,EAAE,CAAS;IACtC,OAAO,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjF,CAAC;AAED,6BAA6B;AAC7B,SAAS,UAAU,CAAC,CAAS,EAAE,CAAS;IACtC,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AACzD,CAAC;AAED,2BAA2B;AAC3B,sEAAsE;AACtE,SAAS,UAAU,CAAC,CAAW,EAAE,CAAW;IAC1C,cAAc;IACd,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC/E,CAAC;AAED,4BAA4B;AAC5B,SAAS,UAAU,CAAC,CAAO,EAAE,CAAO;IAClC,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;AACrC,CAAC;AAED,iCAAiC;AACjC,SAAS,aAAa,CAAC,CAAS,EAAE,CAAS;IACzC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,CAAC;AACtD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,OAAO,CAAC,CAAU,EAAE,CAAU;IAC5C,iCAAiC;IACjC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC/E,IAAI,OAAO,CAAC,KAAK,UAAU,IAAI,OAAO,CAAC,KAAK,UAAU,EAAE,CAAC;YACvD,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAED,oCAAoC;IACpC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,KAAK,CAAC,CAAC,WAAW,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QAC9E,OAAO,KAAK,CAAC;IACf,CAAC;IAED,0BAA0B;IAC1B,IAAI,OAAO,CAAC,KAAK,UAAU,EAAE,CAAC;QAC5B,sEAAsE;QACtE,OAAO,UAAU,CAAC,CAAC,EAAE,CAAa,CAAC,CAAC;IACtC,CAAC;IAED,2BAA2B;IAC3B,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC;QACtB,OAAO,UAAU,CAAC,CAAC,EAAE,CAAS,CAAC,CAAC;IAClC,CAAC;IAED,mCAAmC;IACnC,IAAI,CAAC,YAAY,MAAM,EAAE,CAAC;QACxB,OAAO,aAAa,CAAC,CAAC,EAAE,CAAW,CAAC,CAAC;IACvC,CAAC;IAED,gCAAgC;IAChC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAE7B,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAE7B,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QACxB,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,aAAa;YACb,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBAC7B,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,yBAAyB;IACzB,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RootComponentDoc.js","sourceRoot":"","sources":["../../../src/api/RootComponent/RootComponentDoc.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SubComponentDoc.js","sourceRoot":"","sources":["../../../src/api/SubComponent/SubComponentDoc.ts"],"names":[],"mappings":""}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import type { IfExtends } from "hry-types/src/Any/IfExtends";
|
|
2
|
-
import type { ComputeIntersectionDeep } from "hry-types/src/Object/ComputeIntersectionDeep";
|
|
3
|
-
import type { ComponentDoc } from "../api/DefineComponent/ReturnType/ComponentDoc";
|
|
4
|
-
import type { GetComponentPrefix } from "./GetComponentPrefix";
|
|
5
|
-
type Validator<TOriginalComponentDoc extends ComponentDoc, TExtensionDoc extends ComponentDoc, TOriginalPrefix extends PropertyKey = GetComponentPrefix<TOriginalComponentDoc>, TExtenstionPrefix extends PropertyKey = GetComponentPrefix<TExtensionDoc>, DuplicateKeys extends PropertyKey = Extract<keyof TExtensionDoc["properties"], keyof TOriginalComponentDoc["properties"]> | Extract<keyof TExtensionDoc["customEvents"], keyof TOriginalComponentDoc["customEvents"]>> = IfExtends<TOriginalPrefix, TExtenstionPrefix, IfExtends<DuplicateKeys, never, ComponentDoc, `${DuplicateKeys & string}字段重复`>, `前缀错误,应为${TOriginalPrefix & string}`>;
|
|
6
|
-
/**
|
|
7
|
-
* 有时组件文档内部包含一些slot或基本组件,可通过CompDocExtends泛型拓展组件文档,使得类型更安全
|
|
8
|
-
*/
|
|
9
|
-
export type DocAssign<TOriginalComponentDoc extends ComponentDoc, TExtensionDoc extends Validator<TOriginalComponentDoc, TExtensionDoc>> = ComputeIntersectionDeep<TOriginalComponentDoc & TExtensionDoc>;
|
|
10
|
-
export {};
|
package/dist/types/DocAssign.js
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
// type test0 = DocAssign<{ properties: { aaa_xxx: string } }, { properties: { aaa_xxx: string } }>; // => "aaa_xxx字段重复"
|
|
3
|
-
// type test1 = DocAssign<{ customEvents: { aaa_xxx: string } }, { customEvents: { aaa_xxx: string } }>; // => "aaa_xxx字段重复"
|
|
4
|
-
// type test2 = DocAssign<{ properties: { aaa_xxx: string } }, { properties: { ddd_xxx: string } }>; // => "前缀错误,应为aaa"
|
|
5
|
-
// type test3 = DocAssign<{ customEvents: { aaa_xxx: string } }, { customEvents: { ddd_xxx: string } }>; // => "前缀错误,应为aaa"
|
|
6
|
-
//# sourceMappingURL=DocAssign.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DocAssign.js","sourceRoot":"","sources":["../../src/types/DocAssign.ts"],"names":[],"mappings":";AA6BA,wHAAwH;AAExH,4HAA4H;AAE5H,uHAAuH;AAEvH,2HAA2H"}
|
package/src/types/DocAssign.ts
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import type { IfExtends } from "hry-types/src/Any/IfExtends";
|
|
2
|
-
import type { ComputeIntersectionDeep } from "hry-types/src/Object/ComputeIntersectionDeep";
|
|
3
|
-
import type { ComponentDoc } from "../api/DefineComponent/ReturnType/ComponentDoc";
|
|
4
|
-
import type { GetComponentPrefix } from "./GetComponentPrefix";
|
|
5
|
-
|
|
6
|
-
type Validator<
|
|
7
|
-
TOriginalComponentDoc extends ComponentDoc,
|
|
8
|
-
TExtensionDoc extends ComponentDoc,
|
|
9
|
-
TOriginalPrefix extends PropertyKey = GetComponentPrefix<TOriginalComponentDoc>,
|
|
10
|
-
TExtenstionPrefix extends PropertyKey = GetComponentPrefix<TExtensionDoc>,
|
|
11
|
-
DuplicateKeys extends PropertyKey =
|
|
12
|
-
| Extract<keyof TExtensionDoc["properties"], keyof TOriginalComponentDoc["properties"]>
|
|
13
|
-
| Extract<keyof TExtensionDoc["customEvents"], keyof TOriginalComponentDoc["customEvents"]>,
|
|
14
|
-
> = IfExtends<
|
|
15
|
-
TOriginalPrefix,
|
|
16
|
-
TExtenstionPrefix,
|
|
17
|
-
IfExtends<DuplicateKeys, never, ComponentDoc, `${DuplicateKeys & string}字段重复`>,
|
|
18
|
-
`前缀错误,应为${TOriginalPrefix & string}`
|
|
19
|
-
>;
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* 有时组件文档内部包含一些slot或基本组件,可通过CompDocExtends泛型拓展组件文档,使得类型更安全
|
|
23
|
-
*/
|
|
24
|
-
export type DocAssign<
|
|
25
|
-
TOriginalComponentDoc extends ComponentDoc,
|
|
26
|
-
// @ts-ignore
|
|
27
|
-
TExtensionDoc extends Validator<TOriginalComponentDoc, TExtensionDoc>,
|
|
28
|
-
> = ComputeIntersectionDeep<TOriginalComponentDoc & TExtensionDoc>;
|
|
29
|
-
|
|
30
|
-
// type test0 = DocAssign<{ properties: { aaa_xxx: string } }, { properties: { aaa_xxx: string } }>; // => "aaa_xxx字段重复"
|
|
31
|
-
|
|
32
|
-
// type test1 = DocAssign<{ customEvents: { aaa_xxx: string } }, { customEvents: { aaa_xxx: string } }>; // => "aaa_xxx字段重复"
|
|
33
|
-
|
|
34
|
-
// type test2 = DocAssign<{ properties: { aaa_xxx: string } }, { properties: { ddd_xxx: string } }>; // => "前缀错误,应为aaa"
|
|
35
|
-
|
|
36
|
-
// type test3 = DocAssign<{ customEvents: { aaa_xxx: string } }, { customEvents: { ddd_xxx: string } }>; // => "前缀错误,应为aaa"
|
package/tsconfig.json
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"compilerOptions": {
|
|
3
|
-
"lib": ["ES2022", "DOM"], // jest中用到了DOM类型
|
|
4
|
-
"target": "ES2017",
|
|
5
|
-
"module": "ES2022",
|
|
6
|
-
"moduleResolution": "Node",
|
|
7
|
-
"skipLibCheck": true, // 跳过声明文件的类型检查(.d.ts),你引用的依然会检查, 默认false(不跳过)。
|
|
8
|
-
"esModuleInterop": true, // 默认false. 兼容非ES模块引用的写法(如 import fs from 'fs').
|
|
9
|
-
"allowSyntheticDefaultImports": true, // 默认false. 允许从没有设置默认导出的模块中默认导入。
|
|
10
|
-
"strict": true,
|
|
11
|
-
"noEmit": true, // 不生成输出文件。
|
|
12
|
-
// "resolveJsonModule": true, // 允许导入json模块。
|
|
13
|
-
// "experimentalDecorators": true, // 启用装饰器,如@observable 小程序当前还不支持
|
|
14
|
-
"strictFunctionTypes": false, // e: Dataset<{ id: string }>会报错。
|
|
15
|
-
"forceConsistentCasingInFileNames": true,
|
|
16
|
-
"exactOptionalPropertyTypes": true, // 带有?标志的属性类型不在包含undefined类型
|
|
17
|
-
"noImplicitReturns": true, // 当启用时,TypeScript会检查函数中的所有代码路径,以确保它们返回值
|
|
18
|
-
"isolatedModules": true, // 模块化(.ts文件必须有导入或导出) 默认false
|
|
19
|
-
// "verbatimModuleSyntax": true, // 5.0后新增配置,替代preserveValueImports。
|
|
20
|
-
"types": ["hry-types", "mobx", "jest", "miniprogram-api-typings"]
|
|
21
|
-
},
|
|
22
|
-
"include": ["**/*.ts"]
|
|
23
|
-
}
|