type-plus 6.6.0 → 6.7.1
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/cjs/index.d.ts +1 -0
- package/cjs/index.d.ts.map +1 -1
- package/cjs/index.js.map +1 -1
- package/cjs/testing/stub.d.ts +5 -3
- package/cjs/testing/stub.d.ts.map +1 -1
- package/cjs/testing/stub.js +7 -2
- package/cjs/testing/stub.js.map +1 -1
- package/cjs/type/no_infer.d.ts +24 -0
- package/cjs/type/no_infer.d.ts.map +1 -0
- package/cjs/type/no_infer.js +3 -0
- package/cjs/type/no_infer.js.map +1 -0
- package/esm/index.d.ts +1 -0
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js.map +1 -1
- package/esm/testing/stub.d.ts +5 -3
- package/esm/testing/stub.d.ts.map +1 -1
- package/esm/testing/stub.js +7 -2
- package/esm/testing/stub.js.map +1 -1
- package/esm/type/no_infer.d.ts +24 -0
- package/esm/type/no_infer.d.ts.map +1 -0
- package/esm/type/no_infer.js +2 -0
- package/esm/type/no_infer.js.map +1 -0
- package/package.json +2 -2
- package/ts/index.ts +1 -0
- package/ts/testing/stub.ts +16 -6
- package/ts/type/no_infer.ts +24 -0
- package/ts/type/readme.md +14 -0
package/cjs/index.d.ts
CHANGED
|
@@ -47,6 +47,7 @@ export * from './testing/stub.js';
|
|
|
47
47
|
export * from './testing/test_type.js';
|
|
48
48
|
export type { IsNotTuple, IsTuple, NotTupleType, TupleType } from './tuple/tuple_type.js';
|
|
49
49
|
export type { Failed, FailedT } from './type/failed.js';
|
|
50
|
+
export type { NoInfer } from './type/no_infer.js';
|
|
50
51
|
export type { IsNotUndefined, IsUndefined, NotUndefinedType, UndefinedType } from './undefined/undefined_type.js';
|
|
51
52
|
export type { UnionKeys } from './union_keys.js';
|
|
52
53
|
export type { IsNotUnknown, IsUnknown, NotUnknownType, UnknownType } from './unknown/unknown_type.js';
|
package/cjs/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../ts/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../ts/index.ts"],"names":[],"mappings":"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"}
|
package/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../ts/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAA6D;AAApD,qGAAA,QAAQ,OAAA;AAAE,yGAAA,YAAY,OAAA;AAAE,sGAAA,SAAS,OAAA;AAI1C,mEAAkD;AAElD,mDAAgC;AAChC,6DAA0C;AAiB1C,mDAAgC;AAIhC,iEAA8C;AAQ9C,wDAAqC;AAcrC,oDAAiC;AACjC,qDAAkC;AAIlC,sEAAqD;AAiBrD,oDAAiC;AAEjC,wDAAqC;AAErC,qDAAkC;AAWlC,oDAAiC;AACjC,yDAAsC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../ts/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAA6D;AAApD,qGAAA,QAAQ,OAAA;AAAE,yGAAA,YAAY,OAAA;AAAE,sGAAA,SAAS,OAAA;AAI1C,mEAAkD;AAElD,mDAAgC;AAChC,6DAA0C;AAiB1C,mDAAgC;AAIhC,iEAA8C;AAQ9C,wDAAqC;AAcrC,oDAAiC;AACjC,qDAAkC;AAIlC,sEAAqD;AAiBrD,oDAAiC;AAEjC,wDAAqC;AAErC,qDAAkC;AAWlC,oDAAiC;AACjC,yDAAsC;AAYtC,mDAAgC"}
|
package/cjs/testing/stub.d.ts
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import type { AnyFunction } from '../function/any_function.js';
|
|
2
2
|
import type { RecursivePartial } from '../object/RecursivePartial.js';
|
|
3
|
+
import type { NoInfer } from '../type/no_infer.js';
|
|
3
4
|
export declare namespace stub {
|
|
4
|
-
type Param<T> = T extends AnyFunction ? T : RecursivePartial<T
|
|
5
|
+
type Param<T> = T extends AnyFunction ? T : RecursivePartial<NoInfer<T>>;
|
|
5
6
|
}
|
|
6
|
-
export declare function stub<T>(stub
|
|
7
|
+
export declare function stub<T extends AnyFunction>(stub: T): T;
|
|
8
|
+
export declare function stub<T>(stub: RecursivePartial<NoInfer<T>>): T;
|
|
7
9
|
export declare namespace stub {
|
|
8
10
|
var build: {
|
|
9
11
|
<T>(): (stub?: Param<T> | undefined) => T;
|
|
10
|
-
<T_1>(init: RecursivePartial<T_1> | (() => RecursivePartial<T_1>)): (stub?:
|
|
12
|
+
<T_1>(init: RecursivePartial<T_1> | ((stub?: Param<T_1> | undefined) => RecursivePartial<T_1>)): (stub?: Param<T_1> | undefined) => T_1;
|
|
11
13
|
};
|
|
12
14
|
}
|
|
13
15
|
//# sourceMappingURL=stub.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stub.d.ts","sourceRoot":"","sources":["../../ts/testing/stub.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;
|
|
1
|
+
{"version":3,"file":"stub.d.ts","sourceRoot":"","sources":["../../ts/testing/stub.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AACrE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAElD,yBAAiB,IAAI,CAAC;IACrB,KAAY,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,WAAW,GAAG,CAAC,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;CAC/E;AAED,wBAAgB,IAAI,CAAC,CAAC,SAAS,WAAW,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAAA;AACvD,wBAAgB,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;yBAA9C,IAAI"}
|
package/cjs/testing/stub.js
CHANGED
|
@@ -8,8 +8,13 @@ function stub(stub) {
|
|
|
8
8
|
exports.stub = stub;
|
|
9
9
|
function build(init) {
|
|
10
10
|
return function (value) {
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
if (typeof init === 'function') {
|
|
12
|
+
return init(value);
|
|
13
|
+
}
|
|
14
|
+
if (init) {
|
|
15
|
+
return (0, unpartial_1.requiredDeep)(init, value);
|
|
16
|
+
}
|
|
17
|
+
return value;
|
|
13
18
|
};
|
|
14
19
|
}
|
|
15
20
|
stub.build = build;
|
package/cjs/testing/stub.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stub.js","sourceRoot":"","sources":["../../ts/testing/stub.ts"],"names":[],"mappings":";;;AAAA,yCAAwC;
|
|
1
|
+
{"version":3,"file":"stub.js","sourceRoot":"","sources":["../../ts/testing/stub.ts"],"names":[],"mappings":";;;AAAA,yCAAwC;AAWxC,SAAgB,IAAI,CAAI,IAAa;IACpC,OAAO,IAAS,CAAA;AACjB,CAAC;AAFD,oBAEC;AASD,SAAS,KAAK,CAAI,IAA4E;IAC7F,OAAO,UAAU,KAAqB;QACrC,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE;YAC/B,OAAO,IAAI,CAAC,KAAK,CAAC,CAAA;SAClB;QACD,IAAI,IAAI,EAAE;YACT,OAAO,IAAA,wBAAY,EAAC,IAAI,EAAE,KAAK,CAAC,CAAA;SAChC;QACD,OAAO,KAAK,CAAA;IACb,CAAC,CAAA;AACF,CAAC;AAED,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { IsNull } from '../null/null_type.js';
|
|
2
|
+
import { Or } from '../predicates/logical.js';
|
|
3
|
+
import { IsUndefined } from '../undefined/undefined_type.js';
|
|
4
|
+
/**
|
|
5
|
+
* Prevents inference of a type parameter `T`.
|
|
6
|
+
*
|
|
7
|
+
* A build-in type `NoInfer` is coming soon.
|
|
8
|
+
* @see https://github.com/microsoft/TypeScript/pull/52968
|
|
9
|
+
*
|
|
10
|
+
* @by @ajafff
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```ts
|
|
14
|
+
* function assertEqual<T>(a: T, b: NoInfer<T>) {
|
|
15
|
+
* return a === b
|
|
16
|
+
* }
|
|
17
|
+
*
|
|
18
|
+
* assertEqual(123, 324) // OK
|
|
19
|
+
* assertEqual(123, 'abc') // Error
|
|
20
|
+
* assertEqual({ x: 1 }, { x: 1, y: 2 }) // Error
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
export type NoInfer<T> = Or<IsNull<T>, IsUndefined<T>, T, T & {}>;
|
|
24
|
+
//# sourceMappingURL=no_infer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"no_infer.d.ts","sourceRoot":"","sources":["../../ts/type/no_infer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAC7C,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAA;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAA;AAE5D;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"no_infer.js","sourceRoot":"","sources":["../../ts/type/no_infer.ts"],"names":[],"mappings":""}
|
package/esm/index.d.ts
CHANGED
|
@@ -47,6 +47,7 @@ export * from './testing/stub.js';
|
|
|
47
47
|
export * from './testing/test_type.js';
|
|
48
48
|
export type { IsNotTuple, IsTuple, NotTupleType, TupleType } from './tuple/tuple_type.js';
|
|
49
49
|
export type { Failed, FailedT } from './type/failed.js';
|
|
50
|
+
export type { NoInfer } from './type/no_infer.js';
|
|
50
51
|
export type { IsNotUndefined, IsUndefined, NotUndefinedType, UndefinedType } from './undefined/undefined_type.js';
|
|
51
52
|
export type { UnionKeys } from './union_keys.js';
|
|
52
53
|
export type { IsNotUnknown, IsUnknown, NotUnknownType, UnknownType } from './unknown/unknown_type.js';
|
package/esm/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../ts/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../ts/index.ts"],"names":[],"mappings":"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"}
|
package/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../ts/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAI7D,OAAO,KAAK,SAAS,MAAM,uBAAuB,CAAA;AAElD,cAAc,kBAAkB,CAAA;AAChC,cAAc,4BAA4B,CAAA;AAiB1C,cAAc,kBAAkB,CAAA;AAIhC,cAAc,gCAAgC,CAAA;AAQ9C,cAAc,uBAAuB,CAAA;AAcrC,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA;AAIlC,OAAO,KAAK,UAAU,MAAM,yBAAyB,CAAA;AAiBrD,cAAc,mBAAmB,CAAA;AAEjC,cAAc,uBAAuB,CAAA;AAErC,cAAc,oBAAoB,CAAA;AAWlC,cAAc,mBAAmB,CAAA;AACjC,cAAc,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../ts/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAI7D,OAAO,KAAK,SAAS,MAAM,uBAAuB,CAAA;AAElD,cAAc,kBAAkB,CAAA;AAChC,cAAc,4BAA4B,CAAA;AAiB1C,cAAc,kBAAkB,CAAA;AAIhC,cAAc,gCAAgC,CAAA;AAQ9C,cAAc,uBAAuB,CAAA;AAcrC,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA;AAIlC,OAAO,KAAK,UAAU,MAAM,yBAAyB,CAAA;AAiBrD,cAAc,mBAAmB,CAAA;AAEjC,cAAc,uBAAuB,CAAA;AAErC,cAAc,oBAAoB,CAAA;AAWlC,cAAc,mBAAmB,CAAA;AACjC,cAAc,wBAAwB,CAAA;AAYtC,cAAc,kBAAkB,CAAA"}
|
package/esm/testing/stub.d.ts
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import type { AnyFunction } from '../function/any_function.js';
|
|
2
2
|
import type { RecursivePartial } from '../object/RecursivePartial.js';
|
|
3
|
+
import type { NoInfer } from '../type/no_infer.js';
|
|
3
4
|
export declare namespace stub {
|
|
4
|
-
type Param<T> = T extends AnyFunction ? T : RecursivePartial<T
|
|
5
|
+
type Param<T> = T extends AnyFunction ? T : RecursivePartial<NoInfer<T>>;
|
|
5
6
|
}
|
|
6
|
-
export declare function stub<T>(stub
|
|
7
|
+
export declare function stub<T extends AnyFunction>(stub: T): T;
|
|
8
|
+
export declare function stub<T>(stub: RecursivePartial<NoInfer<T>>): T;
|
|
7
9
|
export declare namespace stub {
|
|
8
10
|
var build: {
|
|
9
11
|
<T>(): (stub?: Param<T> | undefined) => T;
|
|
10
|
-
<T_1>(init: RecursivePartial<T_1> | (() => RecursivePartial<T_1>)): (stub?:
|
|
12
|
+
<T_1>(init: RecursivePartial<T_1> | ((stub?: Param<T_1> | undefined) => RecursivePartial<T_1>)): (stub?: Param<T_1> | undefined) => T_1;
|
|
11
13
|
};
|
|
12
14
|
}
|
|
13
15
|
//# sourceMappingURL=stub.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stub.d.ts","sourceRoot":"","sources":["../../ts/testing/stub.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;
|
|
1
|
+
{"version":3,"file":"stub.d.ts","sourceRoot":"","sources":["../../ts/testing/stub.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AACrE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAElD,yBAAiB,IAAI,CAAC;IACrB,KAAY,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,WAAW,GAAG,CAAC,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;CAC/E;AAED,wBAAgB,IAAI,CAAC,CAAC,SAAS,WAAW,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAAA;AACvD,wBAAgB,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;yBAA9C,IAAI"}
|
package/esm/testing/stub.js
CHANGED
|
@@ -4,8 +4,13 @@ export function stub(stub) {
|
|
|
4
4
|
}
|
|
5
5
|
function build(init) {
|
|
6
6
|
return function (value) {
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
if (typeof init === 'function') {
|
|
8
|
+
return init(value);
|
|
9
|
+
}
|
|
10
|
+
if (init) {
|
|
11
|
+
return requiredDeep(init, value);
|
|
12
|
+
}
|
|
13
|
+
return value;
|
|
9
14
|
};
|
|
10
15
|
}
|
|
11
16
|
stub.build = build;
|
package/esm/testing/stub.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stub.js","sourceRoot":"","sources":["../../ts/testing/stub.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"stub.js","sourceRoot":"","sources":["../../ts/testing/stub.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAWxC,MAAM,UAAU,IAAI,CAAI,IAAa;IACpC,OAAO,IAAS,CAAA;AACjB,CAAC;AASD,SAAS,KAAK,CAAI,IAA4E;IAC7F,OAAO,UAAU,KAAqB;QACrC,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE;YAC/B,OAAO,IAAI,CAAC,KAAK,CAAC,CAAA;SAClB;QACD,IAAI,IAAI,EAAE;YACT,OAAO,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;SAChC;QACD,OAAO,KAAK,CAAA;IACb,CAAC,CAAA;AACF,CAAC;AAED,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { IsNull } from '../null/null_type.js';
|
|
2
|
+
import { Or } from '../predicates/logical.js';
|
|
3
|
+
import { IsUndefined } from '../undefined/undefined_type.js';
|
|
4
|
+
/**
|
|
5
|
+
* Prevents inference of a type parameter `T`.
|
|
6
|
+
*
|
|
7
|
+
* A build-in type `NoInfer` is coming soon.
|
|
8
|
+
* @see https://github.com/microsoft/TypeScript/pull/52968
|
|
9
|
+
*
|
|
10
|
+
* @by @ajafff
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```ts
|
|
14
|
+
* function assertEqual<T>(a: T, b: NoInfer<T>) {
|
|
15
|
+
* return a === b
|
|
16
|
+
* }
|
|
17
|
+
*
|
|
18
|
+
* assertEqual(123, 324) // OK
|
|
19
|
+
* assertEqual(123, 'abc') // Error
|
|
20
|
+
* assertEqual({ x: 1 }, { x: 1, y: 2 }) // Error
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
export type NoInfer<T> = Or<IsNull<T>, IsUndefined<T>, T, T & {}>;
|
|
24
|
+
//# sourceMappingURL=no_infer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"no_infer.d.ts","sourceRoot":"","sources":["../../ts/type/no_infer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAC7C,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAA;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAA;AAE5D;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"no_infer.js","sourceRoot":"","sources":["../../ts/type/no_infer.ts"],"names":[],"mappings":""}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "type-plus",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.7.1",
|
|
4
4
|
"description": "Provides additional types for TypeScript.",
|
|
5
5
|
"homepage": "https://github.com/unional/type-plus",
|
|
6
6
|
"bugs": {
|
|
@@ -71,7 +71,7 @@
|
|
|
71
71
|
"typedoc-plugin-extras": "^2.3.2",
|
|
72
72
|
"typescript": "^5.0.2"
|
|
73
73
|
},
|
|
74
|
-
"packageManager": "pnpm@8.
|
|
74
|
+
"packageManager": "pnpm@8.5.0",
|
|
75
75
|
"scripts": {
|
|
76
76
|
"build": "run-p build:cjs build:esm build:tslib",
|
|
77
77
|
"build:cjs": "tsc -p tsconfig.cjs.json && ncp package.cjs.json cjs/package.json",
|
package/ts/index.ts
CHANGED
|
@@ -89,6 +89,7 @@ export * from './testing/stub.js'
|
|
|
89
89
|
export * from './testing/test_type.js'
|
|
90
90
|
export type { IsNotTuple, IsTuple, NotTupleType, TupleType } from './tuple/tuple_type.js'
|
|
91
91
|
export type { Failed, FailedT } from './type/failed.js'
|
|
92
|
+
export type { NoInfer } from './type/no_infer.js'
|
|
92
93
|
export type {
|
|
93
94
|
IsNotUndefined,
|
|
94
95
|
IsUndefined,
|
package/ts/testing/stub.ts
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
import { requiredDeep } from 'unpartial'
|
|
2
2
|
import type { AnyFunction } from '../function/any_function.js'
|
|
3
3
|
import type { RecursivePartial } from '../object/RecursivePartial.js'
|
|
4
|
+
import type { NoInfer } from '../type/no_infer.js'
|
|
4
5
|
|
|
5
6
|
export namespace stub {
|
|
6
|
-
export type Param<T> = T extends AnyFunction ? T : RecursivePartial<T
|
|
7
|
+
export type Param<T> = T extends AnyFunction ? T : RecursivePartial<NoInfer<T>>
|
|
7
8
|
}
|
|
8
9
|
|
|
9
|
-
export function stub<T>(stub
|
|
10
|
+
export function stub<T extends AnyFunction>(stub: T): T
|
|
11
|
+
export function stub<T>(stub: RecursivePartial<NoInfer<T>>): T
|
|
12
|
+
export function stub<T>(stub: unknown): T {
|
|
10
13
|
return stub as T
|
|
11
14
|
}
|
|
12
15
|
|
|
@@ -14,11 +17,18 @@ export function stub<T>(stub?: stub.Param<T>) {
|
|
|
14
17
|
* builds a stub function
|
|
15
18
|
*/
|
|
16
19
|
function build<T>(): (stub?: stub.Param<T>) => T
|
|
17
|
-
function build<T>(
|
|
18
|
-
|
|
20
|
+
function build<T>(
|
|
21
|
+
init: RecursivePartial<T> | ((stub?: stub.Param<T>) => RecursivePartial<T>)
|
|
22
|
+
): (stub?: stub.Param<T>) => T
|
|
23
|
+
function build<T>(init?: RecursivePartial<T> | ((stub?: stub.Param<T>) => RecursivePartial<T>)) {
|
|
19
24
|
return function (value?: stub.Param<T>) {
|
|
20
|
-
|
|
21
|
-
|
|
25
|
+
if (typeof init === 'function') {
|
|
26
|
+
return init(value)
|
|
27
|
+
}
|
|
28
|
+
if (init) {
|
|
29
|
+
return requiredDeep(init, value)
|
|
30
|
+
}
|
|
31
|
+
return value
|
|
22
32
|
}
|
|
23
33
|
}
|
|
24
34
|
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { IsNull } from '../null/null_type.js'
|
|
2
|
+
import { Or } from '../predicates/logical.js'
|
|
3
|
+
import { IsUndefined } from '../undefined/undefined_type.js'
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Prevents inference of a type parameter `T`.
|
|
7
|
+
*
|
|
8
|
+
* A build-in type `NoInfer` is coming soon.
|
|
9
|
+
* @see https://github.com/microsoft/TypeScript/pull/52968
|
|
10
|
+
*
|
|
11
|
+
* @by @ajafff
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```ts
|
|
15
|
+
* function assertEqual<T>(a: T, b: NoInfer<T>) {
|
|
16
|
+
* return a === b
|
|
17
|
+
* }
|
|
18
|
+
*
|
|
19
|
+
* assertEqual(123, 324) // OK
|
|
20
|
+
* assertEqual(123, 'abc') // Error
|
|
21
|
+
* assertEqual({ x: 1 }, { x: 1, y: 2 }) // Error
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
export type NoInfer<T> = Or<IsNull<T>, IsUndefined<T>, T, T & {}>
|
package/ts/type/readme.md
CHANGED
|
@@ -18,5 +18,19 @@ type YourComplexType<A,B,C> = A extends B ?
|
|
|
18
18
|
|
|
19
19
|
[![Just Code: I failed][failed-type]][failed-type-url]
|
|
20
20
|
|
|
21
|
+
## NoInfer
|
|
22
|
+
|
|
23
|
+
`NoInfer<T>` is a type to prevent type inference.
|
|
24
|
+
|
|
25
|
+
```ts
|
|
26
|
+
import { type NoInfer } from 'type-plus'
|
|
27
|
+
|
|
28
|
+
function assertEqual<T>(a: T, b: NoInfer<T>) {
|
|
29
|
+
return a === b
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
function stub<T>(v: RecursivePartial<NoInfer<T>>): T { return v }
|
|
33
|
+
```
|
|
34
|
+
|
|
21
35
|
[failed-type]: https://img.youtube.com/vi/3pEXVe6KJO4/0.jpg
|
|
22
36
|
[failed-type-url]: https://www.youtube.com/live/3pEXVe6KJO4
|