type-plus 6.6.0 → 6.7.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.
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';
@@ -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;AAWtC,mDAAgC"}
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"}
@@ -1,9 +1,11 @@
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?: stub.Param<T>): T;
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;
@@ -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;AAErE,yBAAiB,IAAI,CAAC;IACrB,KAAY,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,WAAW,GAAG,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAA;CACtE;AAED,wBAAgB,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAE3C;yBAFe,IAAI"}
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"}
@@ -1 +1 @@
1
- {"version":3,"file":"stub.js","sourceRoot":"","sources":["../../ts/testing/stub.ts"],"names":[],"mappings":";;;AAAA,yCAAwC;AAQxC,SAAgB,IAAI,CAAI,IAAoB;IAC3C,OAAO,IAAS,CAAA;AACjB,CAAC;AAFD,oBAEC;AAOD,SAAS,KAAK,CAAI,IAAwD;IACzE,OAAO,UAAU,KAAqB;QACrC,MAAM,SAAS,GAAG,OAAO,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;QAC5D,OAAO,SAAS,CAAC,CAAC,CAAC,IAAI,CAAI,IAAA,wBAAY,EAAC,SAAS,EAAE,KAAK,CAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAI,KAAK,CAAC,CAAA;IACnF,CAAC,CAAA;AACF,CAAC;AAED,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA"}
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;AAOD,SAAS,KAAK,CAAI,IAAwD;IACzE,OAAO,UAAU,KAAqB;QACrC,MAAM,SAAS,GAAG,OAAO,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;QAC5D,OAAO,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAA,wBAAY,EAAC,SAAS,EAAE,KAAK,CAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAY,CAAC,CAAA;IACpF,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,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=no_infer.js.map
@@ -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';
@@ -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;AAWtC,cAAc,kBAAkB,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"}
@@ -1,9 +1,11 @@
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?: stub.Param<T>): T;
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;
@@ -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;AAErE,yBAAiB,IAAI,CAAC;IACrB,KAAY,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,WAAW,GAAG,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAA;CACtE;AAED,wBAAgB,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAE3C;yBAFe,IAAI"}
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"}
@@ -1 +1 @@
1
- {"version":3,"file":"stub.js","sourceRoot":"","sources":["../../ts/testing/stub.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAQxC,MAAM,UAAU,IAAI,CAAI,IAAoB;IAC3C,OAAO,IAAS,CAAA;AACjB,CAAC;AAOD,SAAS,KAAK,CAAI,IAAwD;IACzE,OAAO,UAAU,KAAqB;QACrC,MAAM,SAAS,GAAG,OAAO,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;QAC5D,OAAO,SAAS,CAAC,CAAC,CAAC,IAAI,CAAI,YAAY,CAAC,SAAS,EAAE,KAAK,CAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAI,KAAK,CAAC,CAAA;IACnF,CAAC,CAAA;AACF,CAAC;AAED,IAAI,CAAC,KAAK,GAAG,KAAK,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;AAOD,SAAS,KAAK,CAAI,IAAwD;IACzE,OAAO,UAAU,KAAqB;QACrC,MAAM,SAAS,GAAG,OAAO,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;QAC5D,OAAO,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,KAAK,CAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAY,CAAC,CAAA;IACpF,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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=no_infer.js.map
@@ -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.6.0",
3
+ "version": "6.7.0",
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.2.0",
74
+ "packageManager": "pnpm@8.3.1",
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,
@@ -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?: stub.Param<T>) {
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
 
@@ -18,7 +21,7 @@ function build<T>(init: RecursivePartial<T> | (() => RecursivePartial<T>)): (stu
18
21
  function build<T>(init?: RecursivePartial<T> | (() => RecursivePartial<T>)) {
19
22
  return function (value?: stub.Param<T>) {
20
23
  const initValue = typeof init === 'function' ? init() : init
21
- return initValue ? stub<T>(requiredDeep(initValue, value) as any) : stub<T>(value)
24
+ return initValue ? stub(requiredDeep(initValue, value) as any) : stub(value as any)
22
25
  }
23
26
  }
24
27
 
@@ -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