type-plus 4.11.3 → 4.12.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/README.md +11 -0
- package/cjs/PrimitiveTypes.d.ts +1 -0
- package/cjs/PrimitiveTypes.d.ts.map +1 -1
- package/cjs/PrimitiveTypes.js +1 -0
- package/cjs/PrimitiveTypes.js.map +1 -1
- package/cjs/PrimitiveTypes.spec.d.ts +2 -0
- package/cjs/PrimitiveTypes.spec.d.ts.map +1 -0
- package/cjs/PrimitiveTypes.spec.js +12 -0
- package/cjs/PrimitiveTypes.spec.js.map +1 -0
- package/cjs/index.d.ts +1 -1
- package/cjs/index.d.ts.map +1 -1
- package/cjs/predicates/Equal.d.ts +3 -2
- package/cjs/predicates/Equal.d.ts.map +1 -1
- package/esm/PrimitiveTypes.d.ts +1 -0
- package/esm/PrimitiveTypes.d.ts.map +1 -1
- package/esm/PrimitiveTypes.js +1 -0
- package/esm/PrimitiveTypes.js.map +1 -1
- package/esm/PrimitiveTypes.spec.d.ts +2 -0
- package/esm/PrimitiveTypes.spec.d.ts.map +1 -0
- package/esm/PrimitiveTypes.spec.js +10 -0
- package/esm/PrimitiveTypes.spec.js.map +1 -0
- package/esm/index.d.ts +1 -1
- package/esm/index.d.ts.map +1 -1
- package/esm/predicates/Equal.d.ts +3 -2
- package/esm/predicates/Equal.d.ts.map +1 -1
- package/package.json +2 -2
- package/ts/PrimitiveTypes.ts +6 -2
- package/ts/index.ts +1 -1
- package/ts/predicates/Equal.ts +6 -4
package/README.md
CHANGED
|
@@ -276,6 +276,17 @@ assertType.isTrue(notA({ a: 1 }))
|
|
|
276
276
|
notA({ a: '' }) // TypeScript complains
|
|
277
277
|
```
|
|
278
278
|
|
|
279
|
+
`IsNever<T>`:
|
|
280
|
+
|
|
281
|
+
✔️ `logical`
|
|
282
|
+
|
|
283
|
+
Check if `A` is `never`.
|
|
284
|
+
|
|
285
|
+
```ts
|
|
286
|
+
IsNever<never> // true
|
|
287
|
+
IsNever<1> // false
|
|
288
|
+
```
|
|
289
|
+
|
|
279
290
|
## Type Utilities
|
|
280
291
|
|
|
281
292
|
`type-plus` also provides additional type utilities.
|
package/cjs/PrimitiveTypes.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PrimitiveTypes.d.ts","sourceRoot":"","sources":["../ts/PrimitiveTypes.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PrimitiveTypes.d.ts","sourceRoot":"","sources":["../ts/PrimitiveTypes.ts"],"names":[],"mappings":"AAGA,oBAAY,cAAc,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,IAAI,CAAA;AAE/G,oBAAY,OAAO,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,IAAI,CAAA"}
|
package/cjs/PrimitiveTypes.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PrimitiveTypes.js","sourceRoot":"","sources":["../ts/PrimitiveTypes.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"PrimitiveTypes.js","sourceRoot":"","sources":["../ts/PrimitiveTypes.ts"],"names":[],"mappings":";AAAA,2GAA2G"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PrimitiveTypes.spec.d.ts","sourceRoot":"","sources":["../ts/PrimitiveTypes.spec.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var index_js_1 = require("./index.js");
|
|
4
|
+
describe('IsNever<T>', function () {
|
|
5
|
+
it('checks if type is never', function () {
|
|
6
|
+
index_js_1.isType.equal();
|
|
7
|
+
index_js_1.isType.equal();
|
|
8
|
+
index_js_1.isType.equal();
|
|
9
|
+
index_js_1.isType.equal();
|
|
10
|
+
});
|
|
11
|
+
});
|
|
12
|
+
//# sourceMappingURL=PrimitiveTypes.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PrimitiveTypes.spec.js","sourceRoot":"","sources":["../ts/PrimitiveTypes.spec.ts"],"names":[],"mappings":";;AAAA,uCAA4C;AAE5C,QAAQ,CAAC,YAAY,EAAE;IACrB,EAAE,CAAC,yBAAyB,EAAE;QAC5B,iBAAM,CAAC,KAAK,EAA8B,CAAA;QAC1C,iBAAM,CAAC,KAAK,EAAgC,CAAA;QAC5C,iBAAM,CAAC,KAAK,EAAuC,CAAA;QACnD,iBAAM,CAAC,KAAK,EAA4B,CAAA;IAC1C,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
package/cjs/index.d.ts
CHANGED
|
@@ -11,7 +11,7 @@ export * from './nodejs/index.js';
|
|
|
11
11
|
export * from './nominal-types/index.js';
|
|
12
12
|
export * from './object/index.js';
|
|
13
13
|
export * from './predicates/index.js';
|
|
14
|
-
export type { PrimitiveTypes } from './PrimitiveTypes.js';
|
|
14
|
+
export type { PrimitiveTypes, IsNever } from './PrimitiveTypes.js';
|
|
15
15
|
export * from './promise/index.js';
|
|
16
16
|
export * from './testing/index.js';
|
|
17
17
|
export type { UnionKeys } from './UnionKeys.js';
|
package/cjs/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../ts/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAC7D,cAAc,kBAAkB,CAAA;AAChC,cAAc,sBAAsB,CAAA;AACpC,cAAc,kBAAkB,CAAA;AAChC,YAAY,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAC/E,cAAc,qBAAqB,CAAA;AACnC,cAAc,uBAAuB,CAAA;AACrC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,mBAAmB,CAAA;AACjC,cAAc,0BAA0B,CAAA;AACxC,cAAc,mBAAmB,CAAA;AACjC,cAAc,uBAAuB,CAAA;AACrC,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../ts/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAC7D,cAAc,kBAAkB,CAAA;AAChC,cAAc,sBAAsB,CAAA;AACpC,cAAc,kBAAkB,CAAA;AAChC,YAAY,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAC/E,cAAc,qBAAqB,CAAA;AACnC,cAAc,uBAAuB,CAAA;AACrC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,mBAAmB,CAAA;AACjC,cAAc,0BAA0B,CAAA;AACxC,cAAc,mBAAmB,CAAA;AACjC,cAAc,uBAAuB,CAAA;AACrC,YAAY,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClE,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAGlC,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC/C,cAAc,kBAAkB,CAAA"}
|
|
@@ -6,17 +6,18 @@
|
|
|
6
6
|
* This is needed for `boolean`, `string`, and `number`,
|
|
7
7
|
* as they supports literal types.
|
|
8
8
|
*/
|
|
9
|
+
import { IsNever } from '../PrimitiveTypes.js';
|
|
9
10
|
/**
|
|
10
11
|
* Checks if two types are equal.
|
|
11
12
|
*/
|
|
12
13
|
export declare type Equal<A, B, Then = true, Else = false> = [
|
|
13
14
|
A,
|
|
14
15
|
B
|
|
15
|
-
] extends [boolean | string | number, boolean | string | number] ? (<T>() => T extends A ? 1 : 2) extends (<T>() => T extends B ? 1 : 2) ? Then : Else : (
|
|
16
|
+
] extends [boolean | string | number, boolean | string | number] ? (<T>() => T extends A ? 1 : 2) extends (<T>() => T extends B ? 1 : 2) ? Then : Else : (IsNever<A> extends true ? (IsNever<B> extends true ? Then : Else) : (A extends B ? B extends A ? Then : Else : Else));
|
|
16
17
|
export declare type IsEqual<A, B> = Equal<A, B>;
|
|
17
18
|
export declare type NotEqual<A, B, Then = true, Else = false> = [
|
|
18
19
|
A,
|
|
19
20
|
B
|
|
20
|
-
] extends [boolean | string | number, boolean | string | number] ? (<T>() => T extends A ? 1 : 2) extends (<T>() => T extends B ? 1 : 2) ? Else : Then : (
|
|
21
|
+
] extends [boolean | string | number, boolean | string | number] ? (<T>() => T extends A ? 1 : 2) extends (<T>() => T extends B ? 1 : 2) ? Else : Then : (IsNever<A> extends true ? (IsNever<B> extends true ? Then : Else) : (A extends B ? B extends A ? Else : Then : Then));
|
|
21
22
|
export declare type IsNotEqual<A, B> = NotEqual<A, B>;
|
|
22
23
|
//# sourceMappingURL=Equal.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Equal.d.ts","sourceRoot":"","sources":["../../ts/predicates/Equal.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;GAEG;AACH,oBAAY,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,KAAK,IAC/C;IAAC,CAAC;IAAE,CAAC;CAAC,SAAS,CAAC,OAAO,GAAG,MAAM,GAAG,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC,GACnE,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,GACnF,CAAC,CAAC,CAAC,CAAC,SAAS,
|
|
1
|
+
{"version":3,"file":"Equal.d.ts","sourceRoot":"","sources":["../../ts/predicates/Equal.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAE9C;;GAEG;AACH,oBAAY,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,KAAK,IAC/C;IAAC,CAAC;IAAE,CAAC;CAAC,SAAS,CAAC,OAAO,GAAG,MAAM,GAAG,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC,GACnE,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,GACnF,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,IAAI,GACtB,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,GACvC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,CAAA;AACvD,oBAAY,OAAO,CAAC,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AAEvC,oBAAY,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,KAAK,IAClD;IAAC,CAAC;IAAE,CAAC;CAAC,SAAS,CAAC,OAAO,GAAG,MAAM,GAAG,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC,GACnE,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,GACnF,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,IAAI,GACtB,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,GACvC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,CAAA;AACvD,oBAAY,UAAU,CAAC,CAAC,EAAE,CAAC,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA"}
|
package/esm/PrimitiveTypes.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PrimitiveTypes.d.ts","sourceRoot":"","sources":["../ts/PrimitiveTypes.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PrimitiveTypes.d.ts","sourceRoot":"","sources":["../ts/PrimitiveTypes.ts"],"names":[],"mappings":"AAGA,oBAAY,cAAc,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,IAAI,CAAA;AAE/G,oBAAY,OAAO,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,IAAI,CAAA"}
|
package/esm/PrimitiveTypes.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PrimitiveTypes.js","sourceRoot":"","sources":["../ts/PrimitiveTypes.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"PrimitiveTypes.js","sourceRoot":"","sources":["../ts/PrimitiveTypes.ts"],"names":[],"mappings":"AAAA,2GAA2G"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PrimitiveTypes.spec.d.ts","sourceRoot":"","sources":["../ts/PrimitiveTypes.spec.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PrimitiveTypes.spec.js","sourceRoot":"","sources":["../ts/PrimitiveTypes.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,MAAM,EAAE,MAAM,YAAY,CAAA;AAE5C,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACjC,MAAM,CAAC,KAAK,EAA8B,CAAA;QAC1C,MAAM,CAAC,KAAK,EAAgC,CAAA;QAC5C,MAAM,CAAC,KAAK,EAAuC,CAAA;QACnD,MAAM,CAAC,KAAK,EAA4B,CAAA;IAC1C,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
package/esm/index.d.ts
CHANGED
|
@@ -11,7 +11,7 @@ export * from './nodejs/index.js';
|
|
|
11
11
|
export * from './nominal-types/index.js';
|
|
12
12
|
export * from './object/index.js';
|
|
13
13
|
export * from './predicates/index.js';
|
|
14
|
-
export type { PrimitiveTypes } from './PrimitiveTypes.js';
|
|
14
|
+
export type { PrimitiveTypes, IsNever } from './PrimitiveTypes.js';
|
|
15
15
|
export * from './promise/index.js';
|
|
16
16
|
export * from './testing/index.js';
|
|
17
17
|
export type { UnionKeys } from './UnionKeys.js';
|
package/esm/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../ts/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAC7D,cAAc,kBAAkB,CAAA;AAChC,cAAc,sBAAsB,CAAA;AACpC,cAAc,kBAAkB,CAAA;AAChC,YAAY,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAC/E,cAAc,qBAAqB,CAAA;AACnC,cAAc,uBAAuB,CAAA;AACrC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,mBAAmB,CAAA;AACjC,cAAc,0BAA0B,CAAA;AACxC,cAAc,mBAAmB,CAAA;AACjC,cAAc,uBAAuB,CAAA;AACrC,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../ts/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAC7D,cAAc,kBAAkB,CAAA;AAChC,cAAc,sBAAsB,CAAA;AACpC,cAAc,kBAAkB,CAAA;AAChC,YAAY,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAC/E,cAAc,qBAAqB,CAAA;AACnC,cAAc,uBAAuB,CAAA;AACrC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,mBAAmB,CAAA;AACjC,cAAc,0BAA0B,CAAA;AACxC,cAAc,mBAAmB,CAAA;AACjC,cAAc,uBAAuB,CAAA;AACrC,YAAY,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClE,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAGlC,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC/C,cAAc,kBAAkB,CAAA"}
|
|
@@ -6,17 +6,18 @@
|
|
|
6
6
|
* This is needed for `boolean`, `string`, and `number`,
|
|
7
7
|
* as they supports literal types.
|
|
8
8
|
*/
|
|
9
|
+
import { IsNever } from '../PrimitiveTypes.js';
|
|
9
10
|
/**
|
|
10
11
|
* Checks if two types are equal.
|
|
11
12
|
*/
|
|
12
13
|
export declare type Equal<A, B, Then = true, Else = false> = [
|
|
13
14
|
A,
|
|
14
15
|
B
|
|
15
|
-
] extends [boolean | string | number, boolean | string | number] ? (<T>() => T extends A ? 1 : 2) extends (<T>() => T extends B ? 1 : 2) ? Then : Else : (
|
|
16
|
+
] extends [boolean | string | number, boolean | string | number] ? (<T>() => T extends A ? 1 : 2) extends (<T>() => T extends B ? 1 : 2) ? Then : Else : (IsNever<A> extends true ? (IsNever<B> extends true ? Then : Else) : (A extends B ? B extends A ? Then : Else : Else));
|
|
16
17
|
export declare type IsEqual<A, B> = Equal<A, B>;
|
|
17
18
|
export declare type NotEqual<A, B, Then = true, Else = false> = [
|
|
18
19
|
A,
|
|
19
20
|
B
|
|
20
|
-
] extends [boolean | string | number, boolean | string | number] ? (<T>() => T extends A ? 1 : 2) extends (<T>() => T extends B ? 1 : 2) ? Else : Then : (
|
|
21
|
+
] extends [boolean | string | number, boolean | string | number] ? (<T>() => T extends A ? 1 : 2) extends (<T>() => T extends B ? 1 : 2) ? Else : Then : (IsNever<A> extends true ? (IsNever<B> extends true ? Then : Else) : (A extends B ? B extends A ? Else : Then : Then));
|
|
21
22
|
export declare type IsNotEqual<A, B> = NotEqual<A, B>;
|
|
22
23
|
//# sourceMappingURL=Equal.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Equal.d.ts","sourceRoot":"","sources":["../../ts/predicates/Equal.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;GAEG;AACH,oBAAY,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,KAAK,IAC/C;IAAC,CAAC;IAAE,CAAC;CAAC,SAAS,CAAC,OAAO,GAAG,MAAM,GAAG,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC,GACnE,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,GACnF,CAAC,CAAC,CAAC,CAAC,SAAS,
|
|
1
|
+
{"version":3,"file":"Equal.d.ts","sourceRoot":"","sources":["../../ts/predicates/Equal.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAE9C;;GAEG;AACH,oBAAY,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,KAAK,IAC/C;IAAC,CAAC;IAAE,CAAC;CAAC,SAAS,CAAC,OAAO,GAAG,MAAM,GAAG,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC,GACnE,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,GACnF,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,IAAI,GACtB,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,GACvC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,CAAA;AACvD,oBAAY,OAAO,CAAC,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AAEvC,oBAAY,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,KAAK,IAClD;IAAC,CAAC;IAAE,CAAC;CAAC,SAAS,CAAC,OAAO,GAAG,MAAM,GAAG,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC,GACnE,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,GACnF,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,IAAI,GACtB,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,GACvC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,CAAA;AACvD,oBAAY,UAAU,CAAC,CAAC,EAAE,CAAC,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "type-plus",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.12.1",
|
|
4
4
|
"description": "Provides additional types for TypeScript.",
|
|
5
5
|
"homepage": "https://github.com/unional/type-plus",
|
|
6
6
|
"bugs": {
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
},
|
|
53
53
|
"dependencies": {
|
|
54
54
|
"tersify": "^3.10.2",
|
|
55
|
-
"unpartial": "^1.0.
|
|
55
|
+
"unpartial": "^1.0.3"
|
|
56
56
|
},
|
|
57
57
|
"devDependencies": {
|
|
58
58
|
"@commitlint/cli": "^17.0.2",
|
package/ts/PrimitiveTypes.ts
CHANGED
|
@@ -1,2 +1,6 @@
|
|
|
1
|
-
//
|
|
2
|
-
|
|
1
|
+
// IsNever from @jack-williams: https://github.com/microsoft/TypeScript/issues/23182#issuecomment-379091887
|
|
2
|
+
|
|
3
|
+
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
4
|
+
export type PrimitiveTypes = boolean | number | string | object | symbol | bigint | Function | undefined | null
|
|
5
|
+
|
|
6
|
+
export type IsNever<T, Then = true, Else = false> = [T] extends [never] ? Then : Else
|
package/ts/index.ts
CHANGED
|
@@ -12,7 +12,7 @@ export * from './nodejs/index.js'
|
|
|
12
12
|
export * from './nominal-types/index.js'
|
|
13
13
|
export * from './object/index.js'
|
|
14
14
|
export * from './predicates/index.js'
|
|
15
|
-
export type { PrimitiveTypes } from './PrimitiveTypes.js'
|
|
15
|
+
export type { PrimitiveTypes, IsNever } from './PrimitiveTypes.js'
|
|
16
16
|
export * from './promise/index.js'
|
|
17
17
|
export * from './testing/index.js'
|
|
18
18
|
// export * from './types/optional.js'
|
package/ts/predicates/Equal.ts
CHANGED
|
@@ -7,21 +7,23 @@
|
|
|
7
7
|
* as they supports literal types.
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
|
+
import { IsNever } from '../PrimitiveTypes.js'
|
|
11
|
+
|
|
10
12
|
/**
|
|
11
13
|
* Checks if two types are equal.
|
|
12
14
|
*/
|
|
13
15
|
export type Equal<A, B, Then = true, Else = false> =
|
|
14
16
|
[A, B] extends [boolean | string | number, boolean | string | number]
|
|
15
17
|
? (<T>() => T extends A ? 1 : 2) extends (<T>() => T extends B ? 1 : 2) ? Then : Else
|
|
16
|
-
: (
|
|
17
|
-
? (
|
|
18
|
+
: (IsNever<A> extends true
|
|
19
|
+
? (IsNever<B> extends true ? Then : Else)
|
|
18
20
|
: (A extends B ? B extends A ? Then : Else : Else))
|
|
19
21
|
export type IsEqual<A, B> = Equal<A, B>
|
|
20
22
|
|
|
21
23
|
export type NotEqual<A, B, Then = true, Else = false> =
|
|
22
24
|
[A, B] extends [boolean | string | number, boolean | string | number]
|
|
23
25
|
? (<T>() => T extends A ? 1 : 2) extends (<T>() => T extends B ? 1 : 2) ? Else : Then
|
|
24
|
-
: (
|
|
25
|
-
? (
|
|
26
|
+
: (IsNever<A> extends true
|
|
27
|
+
? (IsNever<B> extends true ? Then : Else)
|
|
26
28
|
: (A extends B ? B extends A ? Else : Then : Then))
|
|
27
29
|
export type IsNotEqual<A, B> = NotEqual<A, B>
|