type-plus 6.5.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/README.md +27 -15
- package/cjs/any/any_or_never.d.ts +0 -2
- package/cjs/any/any_or_never.d.ts.map +1 -1
- package/cjs/any/any_type.d.ts +2 -6
- package/cjs/any/any_type.d.ts.map +1 -1
- package/cjs/array/array.d.ts +0 -4
- package/cjs/array/array.d.ts.map +1 -1
- package/cjs/array/array_index.d.ts +7 -10
- package/cjs/array/array_index.d.ts.map +1 -1
- package/cjs/array/array_type.d.ts +0 -8
- package/cjs/array/array_type.d.ts.map +1 -1
- package/cjs/bigint/bigint_type.d.ts +4 -12
- package/cjs/bigint/bigint_type.d.ts.map +1 -1
- package/cjs/bigint/strict_bigint_type.d.ts +4 -12
- package/cjs/bigint/strict_bigint_type.d.ts.map +1 -1
- package/cjs/boolean/boolean_type.d.ts +0 -8
- package/cjs/boolean/boolean_type.d.ts.map +1 -1
- package/cjs/boolean/false_type.d.ts +0 -8
- package/cjs/boolean/false_type.d.ts.map +1 -1
- package/cjs/boolean/strict_boolean_type.d.ts +0 -8
- package/cjs/boolean/strict_boolean_type.d.ts.map +1 -1
- package/cjs/boolean/true_type.d.ts +0 -8
- package/cjs/boolean/true_type.d.ts.map +1 -1
- package/cjs/equal/equal.d.ts +4 -5
- package/cjs/equal/equal.d.ts.map +1 -1
- package/cjs/function/function_type.d.ts +0 -8
- package/cjs/function/function_type.d.ts.map +1 -1
- package/cjs/function/strict_function_type.d.ts +0 -8
- package/cjs/function/strict_function_type.d.ts.map +1 -1
- package/cjs/index.d.ts +3 -0
- package/cjs/index.d.ts.map +1 -1
- package/cjs/index.js.map +1 -1
- package/cjs/never/never_type.d.ts +2 -10
- package/cjs/never/never_type.d.ts.map +1 -1
- package/cjs/null/null_type.d.ts +4 -12
- package/cjs/null/null_type.d.ts.map +1 -1
- package/cjs/number/integer.d.ts +1 -9
- package/cjs/number/integer.d.ts.map +1 -1
- package/cjs/number/negative.d.ts +0 -8
- package/cjs/number/negative.d.ts.map +1 -1
- package/cjs/number/number_type.d.ts +0 -8
- package/cjs/number/number_type.d.ts.map +1 -1
- package/cjs/number/numeric_type.d.ts +0 -8
- package/cjs/number/numeric_type.d.ts.map +1 -1
- package/cjs/number/positive.d.ts +1 -9
- package/cjs/number/positive.d.ts.map +1 -1
- package/cjs/number/strict_number_type.d.ts +4 -12
- package/cjs/number/strict_number_type.d.ts.map +1 -1
- package/cjs/object/object_type.d.ts +1 -9
- package/cjs/object/object_type.d.ts.map +1 -1
- package/cjs/string/strict_string_type.d.ts +14 -19
- package/cjs/string/strict_string_type.d.ts.map +1 -1
- package/cjs/string/string.d.ts +24 -0
- package/cjs/string/string.d.ts.map +1 -0
- package/cjs/string/string.js +3 -0
- package/cjs/string/string.js.map +1 -0
- package/cjs/string/string_plus.d.ts +27 -0
- package/cjs/string/string_plus.d.ts.map +1 -0
- package/cjs/string/string_plus.js +3 -0
- package/cjs/string/string_plus.js.map +1 -0
- package/cjs/string/string_type.d.ts +4 -12
- package/cjs/string/string_type.d.ts.map +1 -1
- package/cjs/symbol/symbol_type.d.ts +5 -15
- package/cjs/symbol/symbol_type.d.ts.map +1 -1
- package/cjs/testing/stub.d.ts +4 -2
- package/cjs/testing/stub.d.ts.map +1 -1
- package/cjs/testing/stub.js.map +1 -1
- package/cjs/tuple/tuple_type.d.ts +0 -8
- package/cjs/tuple/tuple_type.d.ts.map +1 -1
- package/cjs/type/failed.d.ts +2 -3
- package/cjs/type/failed.d.ts.map +1 -1
- package/cjs/type/failed.js +0 -1
- package/cjs/type/failed.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/cjs/undefined/undefined_type.d.ts +4 -12
- package/cjs/undefined/undefined_type.d.ts.map +1 -1
- package/cjs/unknown/unknown_type.d.ts +4 -12
- package/cjs/unknown/unknown_type.d.ts.map +1 -1
- package/cjs/void/void_type.d.ts +0 -8
- package/cjs/void/void_type.d.ts.map +1 -1
- package/esm/any/any_or_never.d.ts +0 -2
- package/esm/any/any_or_never.d.ts.map +1 -1
- package/esm/any/any_type.d.ts +2 -6
- package/esm/any/any_type.d.ts.map +1 -1
- package/esm/array/array.d.ts +0 -4
- package/esm/array/array.d.ts.map +1 -1
- package/esm/array/array_index.d.ts +7 -10
- package/esm/array/array_index.d.ts.map +1 -1
- package/esm/array/array_type.d.ts +0 -8
- package/esm/array/array_type.d.ts.map +1 -1
- package/esm/bigint/bigint_type.d.ts +4 -12
- package/esm/bigint/bigint_type.d.ts.map +1 -1
- package/esm/bigint/strict_bigint_type.d.ts +4 -12
- package/esm/bigint/strict_bigint_type.d.ts.map +1 -1
- package/esm/boolean/boolean_type.d.ts +0 -8
- package/esm/boolean/boolean_type.d.ts.map +1 -1
- package/esm/boolean/false_type.d.ts +0 -8
- package/esm/boolean/false_type.d.ts.map +1 -1
- package/esm/boolean/strict_boolean_type.d.ts +0 -8
- package/esm/boolean/strict_boolean_type.d.ts.map +1 -1
- package/esm/boolean/true_type.d.ts +0 -8
- package/esm/boolean/true_type.d.ts.map +1 -1
- package/esm/equal/equal.d.ts +4 -5
- package/esm/equal/equal.d.ts.map +1 -1
- package/esm/function/function_type.d.ts +0 -8
- package/esm/function/function_type.d.ts.map +1 -1
- package/esm/function/strict_function_type.d.ts +0 -8
- package/esm/function/strict_function_type.d.ts.map +1 -1
- package/esm/index.d.ts +3 -0
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js.map +1 -1
- package/esm/never/never_type.d.ts +2 -10
- package/esm/never/never_type.d.ts.map +1 -1
- package/esm/null/null_type.d.ts +4 -12
- package/esm/null/null_type.d.ts.map +1 -1
- package/esm/number/integer.d.ts +1 -9
- package/esm/number/integer.d.ts.map +1 -1
- package/esm/number/negative.d.ts +0 -8
- package/esm/number/negative.d.ts.map +1 -1
- package/esm/number/number_type.d.ts +0 -8
- package/esm/number/number_type.d.ts.map +1 -1
- package/esm/number/numeric_type.d.ts +0 -8
- package/esm/number/numeric_type.d.ts.map +1 -1
- package/esm/number/positive.d.ts +1 -9
- package/esm/number/positive.d.ts.map +1 -1
- package/esm/number/strict_number_type.d.ts +4 -12
- package/esm/number/strict_number_type.d.ts.map +1 -1
- package/esm/object/object_type.d.ts +1 -9
- package/esm/object/object_type.d.ts.map +1 -1
- package/esm/string/strict_string_type.d.ts +14 -19
- package/esm/string/strict_string_type.d.ts.map +1 -1
- package/esm/string/string.d.ts +24 -0
- package/esm/string/string.d.ts.map +1 -0
- package/esm/string/string.js +2 -0
- package/esm/string/string.js.map +1 -0
- package/esm/string/string_plus.d.ts +27 -0
- package/esm/string/string_plus.d.ts.map +1 -0
- package/esm/string/string_plus.js +2 -0
- package/esm/string/string_plus.js.map +1 -0
- package/esm/string/string_type.d.ts +4 -12
- package/esm/string/string_type.d.ts.map +1 -1
- package/esm/symbol/symbol_type.d.ts +5 -15
- package/esm/symbol/symbol_type.d.ts.map +1 -1
- package/esm/testing/stub.d.ts +4 -2
- package/esm/testing/stub.d.ts.map +1 -1
- package/esm/testing/stub.js.map +1 -1
- package/esm/tuple/tuple_type.d.ts +0 -8
- package/esm/tuple/tuple_type.d.ts.map +1 -1
- package/esm/type/failed.d.ts +2 -3
- package/esm/type/failed.d.ts.map +1 -1
- package/esm/type/failed.js +1 -1
- package/esm/type/failed.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/esm/undefined/undefined_type.d.ts +4 -12
- package/esm/undefined/undefined_type.d.ts.map +1 -1
- package/esm/unknown/unknown_type.d.ts +4 -12
- package/esm/unknown/unknown_type.d.ts.map +1 -1
- package/esm/void/void_type.d.ts +0 -8
- package/esm/void/void_type.d.ts.map +1 -1
- package/package.json +3 -3
- package/ts/any/any_or_never.ts +0 -2
- package/ts/any/any_type.ts +2 -6
- package/ts/array/array.ts +0 -4
- package/ts/array/array_index.ts +7 -10
- package/ts/array/array_type.ts +0 -8
- package/ts/bigint/bigint_type.ts +4 -12
- package/ts/bigint/strict_bigint_type.ts +4 -12
- package/ts/boolean/boolean_type.ts +0 -8
- package/ts/boolean/false_type.ts +0 -8
- package/ts/boolean/strict_boolean_type.ts +0 -8
- package/ts/boolean/true_type.ts +0 -8
- package/ts/equal/equal.ts +9 -5
- package/ts/equal/readme.md +3 -0
- package/ts/function/function_type.ts +0 -8
- package/ts/function/strict_function_type.ts +0 -8
- package/ts/index.ts +3 -0
- package/ts/never/never_type.ts +2 -10
- package/ts/null/null_type.ts +4 -12
- package/ts/number/integer.ts +1 -9
- package/ts/number/negative.ts +0 -8
- package/ts/number/number_type.ts +0 -8
- package/ts/number/numeric_type.ts +0 -8
- package/ts/number/positive.ts +1 -9
- package/ts/number/strict_number_type.ts +4 -12
- package/ts/object/object_type.ts +1 -9
- package/ts/string/readme.md +5 -0
- package/ts/string/strict_string_type.ts +15 -19
- package/ts/string/string.ts +36 -0
- package/ts/string/string_plus.ts +33 -0
- package/ts/string/string_type.ts +4 -12
- package/ts/symbol/symbol_type.ts +5 -17
- package/ts/testing/stub.ts +6 -3
- package/ts/tuple/tuple_type.ts +0 -8
- package/ts/type/failed.ts +1 -3
- package/ts/type/no_infer.ts +24 -0
- package/ts/type/readme.md +36 -0
- package/ts/undefined/undefined_type.ts +4 -12
- package/ts/unknown/unknown_type.ts +4 -12
- package/ts/void/void_type.ts +0 -8
- package/cjs/type/constants.d.ts +0 -5
- package/cjs/type/constants.d.ts.map +0 -1
- package/cjs/type/constants.js +0 -8
- package/cjs/type/constants.js.map +0 -1
- package/esm/type/constants.d.ts +0 -5
- package/esm/type/constants.d.ts.map +0 -1
- package/esm/type/constants.js +0 -5
- package/esm/type/constants.js.map +0 -1
- package/ts/type/constants.ts +0 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"undefined_type.d.ts","sourceRoot":"","sources":["../../ts/undefined/undefined_type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAE/C
|
|
1
|
+
{"version":3,"file":"undefined_type.d.ts","sourceRoot":"","sources":["../../ts/undefined/undefined_type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAE/C;;;;;;;;;;GAUG;AACH,MAAM,MAAM,aAAa,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,KAAK,IAAI,KAAK,CAC3D,CAAC,EACD,IAAI,EACJ;IAAC,CAAC;IAAE,SAAS;CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CACnD,CAAA;AAED;;;;;;;;;;GAUG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,KAAK,IAAI,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;AAEpF;;;;;;;;;;GAUG;AACH,MAAM,MAAM,gBAAgB,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,KAAK,IAAI,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;AAEtF;;;;;;;;;;GAUG;AACH,MAAM,MAAM,cAAc,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,KAAK,IAAI,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA"}
|
|
@@ -2,9 +2,7 @@ import type { IsAny } from '../any/any_type.js';
|
|
|
2
2
|
/**
|
|
3
3
|
* Check if the type `T` is exactly `unknown`.
|
|
4
4
|
*
|
|
5
|
-
* ```
|
|
6
|
-
* import type { UnknownType } from 'type-plus'
|
|
7
|
-
*
|
|
5
|
+
* ```ts
|
|
8
6
|
* type R = UnknownType<unknown> // unknown
|
|
9
7
|
*
|
|
10
8
|
* type R = UnknownType<number> // never
|
|
@@ -18,9 +16,7 @@ export type UnknownType<T, Then = T, Else = never> = IsAny<T, Else, [
|
|
|
18
16
|
/**
|
|
19
17
|
* Is the type `T` exactly `unknown`.
|
|
20
18
|
*
|
|
21
|
-
* ```
|
|
22
|
-
* import type { IsUnknown } from 'type-plus'
|
|
23
|
-
*
|
|
19
|
+
* ```ts
|
|
24
20
|
* type R = IsUnknown<unknown> // true
|
|
25
21
|
*
|
|
26
22
|
* type R = IsUnknown<number> // false
|
|
@@ -31,9 +27,7 @@ export type IsUnknown<T, Then = true, Else = false> = UnknownType<T, Then, Else>
|
|
|
31
27
|
/**
|
|
32
28
|
* Check if the type `T` is not `unknown`.
|
|
33
29
|
*
|
|
34
|
-
* ```
|
|
35
|
-
* import type { NotUnknownType } from 'type-plus'
|
|
36
|
-
*
|
|
30
|
+
* ```ts
|
|
37
31
|
* type R = NotUnknownType<unknown> // never
|
|
38
32
|
*
|
|
39
33
|
* type R = NotUnknownType<never> // never
|
|
@@ -45,9 +39,7 @@ export type NotUnknownType<T, Then = T, Else = never> = UnknownType<T, Else, The
|
|
|
45
39
|
/**
|
|
46
40
|
* Is the type `T` not exactly `unknown`.
|
|
47
41
|
*
|
|
48
|
-
* ```
|
|
49
|
-
* import type { IsNotUnknown } from 'type-plus'
|
|
50
|
-
*
|
|
42
|
+
* ```ts
|
|
51
43
|
* type R = IsNotUnknown<unknown> // false
|
|
52
44
|
*
|
|
53
45
|
* type R = IsNotUnknown<never> // true
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unknown_type.d.ts","sourceRoot":"","sources":["../../ts/unknown/unknown_type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAE/C
|
|
1
|
+
{"version":3,"file":"unknown_type.d.ts","sourceRoot":"","sources":["../../ts/unknown/unknown_type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAE/C;;;;;;;;;GASG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,KAAK,IAAI,KAAK,CACzD,CAAC,EACD,IAAI,EACJ;IAAC,CAAC;IAAE,OAAO;CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAC/C,CAAA;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,KAAK,IAAI,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;AAEhF;;;;;;;;;;GAUG;AACH,MAAM,MAAM,cAAc,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,KAAK,IAAI,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;AAElF;;;;;;;;;;GAUG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,KAAK,IAAI,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA"}
|
package/esm/void/void_type.d.ts
CHANGED
|
@@ -4,8 +4,6 @@ import type { IsUndefined } from '../undefined/undefined_type.js';
|
|
|
4
4
|
* Check if `T` is `void`.
|
|
5
5
|
*
|
|
6
6
|
* ```ts
|
|
7
|
-
* import type { VoidType } from 'type-plus'
|
|
8
|
-
*
|
|
9
7
|
* type R = VoidType<void> // void
|
|
10
8
|
*
|
|
11
9
|
* type R = VoidType<1> // never
|
|
@@ -16,8 +14,6 @@ export type VoidType<T, Then = T, Else = never> = IsAnyOrNever<T, Else, IsUndefi
|
|
|
16
14
|
* Check if `T` is not `void`.
|
|
17
15
|
*
|
|
18
16
|
* ```ts
|
|
19
|
-
* import type { VoidType } from 'type-plus'
|
|
20
|
-
*
|
|
21
17
|
* type R = VoidType<void> // never
|
|
22
18
|
*
|
|
23
19
|
* type R = VoidType<1> // 1
|
|
@@ -28,8 +24,6 @@ export type NotVoidType<T, Then = T, Else = never> = VoidType<T, Else, Then>;
|
|
|
28
24
|
* Is `T` `void`.
|
|
29
25
|
*
|
|
30
26
|
* ```ts
|
|
31
|
-
* import type { IsVoid } from 'type-plus'
|
|
32
|
-
*
|
|
33
27
|
* type R = IsVoid<void> // true
|
|
34
28
|
*
|
|
35
29
|
* type R = IsVoid<1> // false
|
|
@@ -40,8 +34,6 @@ export type IsVoid<T, Then = true, Else = false> = VoidType<T, Then, Else>;
|
|
|
40
34
|
* Is `T` not `void`.
|
|
41
35
|
*
|
|
42
36
|
* ```ts
|
|
43
|
-
* import type { IsNotVoid } from 'type-plus'
|
|
44
|
-
*
|
|
45
37
|
* type R = IsNotVoid<void> // false
|
|
46
38
|
*
|
|
47
39
|
* type R = IsNotVoid<1> // true
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"void_type.d.ts","sourceRoot":"","sources":["../../ts/void/void_type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAA;AAEjE
|
|
1
|
+
{"version":3,"file":"void_type.d.ts","sourceRoot":"","sources":["../../ts/void/void_type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAA;AAEjE;;;;;;;;GAQG;AACH,MAAM,MAAM,QAAQ,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,KAAK,IAAI,YAAY,CAC7D,CAAC,EACD,IAAI,EACJ,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,CACtD,CAAA;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,KAAK,IAAI,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;AAE5E;;;;;;;;GAQG;AACH,MAAM,MAAM,MAAM,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,KAAK,IAAI,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;AAE1E;;;;;;;;GAQG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,KAAK,IAAI,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "type-plus",
|
|
3
|
-
"version": "6.
|
|
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": {
|
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
"ncp": "^2.0.0",
|
|
63
63
|
"npm-run-all": "^4.1.5",
|
|
64
64
|
"pinst": "^3.0.0",
|
|
65
|
-
"rimraf": "^
|
|
65
|
+
"rimraf": "^5.0.0",
|
|
66
66
|
"satisfier": "^5.2.2",
|
|
67
67
|
"size-limit": "^8.2.4",
|
|
68
68
|
"ts-jest": "^29.1.0",
|
|
@@ -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.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/any/any_or_never.ts
CHANGED
package/ts/any/any_type.ts
CHANGED
|
@@ -2,9 +2,7 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Check if the type `T` is exactly `any`.
|
|
4
4
|
*
|
|
5
|
-
* ```
|
|
6
|
-
* import type { AnyType } from 'type-plus'
|
|
7
|
-
*
|
|
5
|
+
* ```ts
|
|
8
6
|
* type R = AnyType<any> // any
|
|
9
7
|
*
|
|
10
8
|
* type R = AnyType<never> // never
|
|
@@ -17,9 +15,7 @@ export type AnyType<T, Then = T, Else = never> = 0 extends 1 & T ? Then : Else
|
|
|
17
15
|
/**
|
|
18
16
|
* Is the type `T` exactly `any`.
|
|
19
17
|
*
|
|
20
|
-
* ```
|
|
21
|
-
* import type { IsAny } from 'type-plus'
|
|
22
|
-
*
|
|
18
|
+
* ```ts
|
|
23
19
|
* type R = IsAny<any> // true
|
|
24
20
|
*
|
|
25
21
|
* type R = IsAny<never> // false
|
package/ts/array/array.ts
CHANGED
|
@@ -9,8 +9,6 @@ import type { IndexAt } from './array_index.js'
|
|
|
9
9
|
* @see https://github.com/microsoft/TypeScript/issues/53345#issuecomment-1477138167
|
|
10
10
|
*
|
|
11
11
|
* ```ts
|
|
12
|
-
* import type { At } from 'type-plus'
|
|
13
|
-
*
|
|
14
12
|
* type R = At<[1, 2, 3], 2> // 3
|
|
15
13
|
* type R = At<[1, 2, 3], -1> // 3
|
|
16
14
|
* ```
|
|
@@ -29,8 +27,6 @@ export type At<A extends unknown[], N extends number, Fail = never> = IndexAt<A,
|
|
|
29
27
|
* @alias ArrayPlus.Concat
|
|
30
28
|
*
|
|
31
29
|
* ```ts
|
|
32
|
-
* import type { Concat } form 'type-plus'
|
|
33
|
-
*
|
|
34
30
|
* type R = Concat<[1], [2, 3]> // [1, 2, 3]
|
|
35
31
|
* ```
|
|
36
32
|
*/
|
package/ts/array/array_index.ts
CHANGED
|
@@ -11,14 +11,12 @@ import type { StrictNumberType } from '../number/strict_number_type.js'
|
|
|
11
11
|
/**
|
|
12
12
|
* Gets the normalized index to access the element of an array or tuple.
|
|
13
13
|
*
|
|
14
|
-
* ```
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
* type R = ArrayPlus.IndexAt<['a', 'b', 'c'], 2> // 2
|
|
18
|
-
* type R = ArrayPlus.IndexAt<['a', 'b', 'c'], -2> // 1
|
|
14
|
+
* ```ts
|
|
15
|
+
* type R = IndexAt<['a', 'b', 'c'], 2> // 2
|
|
16
|
+
* type R = IndexAt<['a', 'b', 'c'], -2> // 1
|
|
19
17
|
*
|
|
20
|
-
* type R =
|
|
21
|
-
* type R =
|
|
18
|
+
* type R = IndexAt<['a', 'b', 'c'], 3> // never
|
|
19
|
+
* type R = IndexAt<['a', 'b', 'c'], -4> // never
|
|
22
20
|
* ```
|
|
23
21
|
*/
|
|
24
22
|
export type IndexAt<A extends Array<unknown>, N extends number, Fail = never> = Equal<
|
|
@@ -54,14 +52,13 @@ export type IndexAt<A extends Array<unknown>, N extends number, Fail = never> =
|
|
|
54
52
|
/**
|
|
55
53
|
* Is N an out of bound index of A.
|
|
56
54
|
*
|
|
57
|
-
* ```
|
|
58
|
-
* import { IsIndexOutOfBound } from 'type-plus'
|
|
59
|
-
*
|
|
55
|
+
* ```ts
|
|
60
56
|
* type R = IsIndexOutOfBound<[1], 0> // false
|
|
61
57
|
* type R = IsIndexOutOfBound<[1], -1> // false
|
|
62
58
|
|
|
63
59
|
* type R = IsIndexOutOfBound<[1], 1> // true
|
|
64
60
|
* type R = IsIndexOutOfBound<[1], -2> // true
|
|
61
|
+
* ```
|
|
65
62
|
*/
|
|
66
63
|
export type IsIndexOutOfBound<A extends unknown[], N extends number, Then = true, Else = false> = IsNever<
|
|
67
64
|
IndexAt<A, N>,
|
package/ts/array/array_type.ts
CHANGED
|
@@ -5,8 +5,6 @@ import type { StrictNumberType } from '../number/strict_number_type.js'
|
|
|
5
5
|
* Check if the type `T` is an array and not a tuple.
|
|
6
6
|
*
|
|
7
7
|
* ```ts
|
|
8
|
-
* import type { ArrayType } from 'type-plus'
|
|
9
|
-
*
|
|
10
8
|
* type R = ArrayType<number[]> // number[]
|
|
11
9
|
*
|
|
12
10
|
* type R = ArrayType<[1]> // never
|
|
@@ -22,8 +20,6 @@ export type ArrayType<T, Then = T, Else = never> = IsNever<
|
|
|
22
20
|
* Check if the type `T` is not an array.
|
|
23
21
|
*
|
|
24
22
|
* ```ts
|
|
25
|
-
* import type { NotArrayType } from 'type-plus'
|
|
26
|
-
*
|
|
27
23
|
* type R = NotArrayType<number[]> // never
|
|
28
24
|
*
|
|
29
25
|
* type R = NotArrayType<number> // number
|
|
@@ -36,8 +32,6 @@ export type NotArrayType<T, Then = T, Else = never> = ArrayType<T, Else, Then>
|
|
|
36
32
|
* Is `T` an array?
|
|
37
33
|
*
|
|
38
34
|
* ```ts
|
|
39
|
-
* import type { IsArray } from 'type-plus'
|
|
40
|
-
*
|
|
41
35
|
* type R = IsArray<number[]> // true
|
|
42
36
|
*
|
|
43
37
|
* type R = IsArray<number> // false
|
|
@@ -50,8 +44,6 @@ export type IsArray<T, Then = true, Else = false> = ArrayType<T, Then, Else>
|
|
|
50
44
|
* Is `T` not an array?
|
|
51
45
|
*
|
|
52
46
|
* ```ts
|
|
53
|
-
* import type { IsNotArray } from 'type-plus'
|
|
54
|
-
*
|
|
55
47
|
* type R = IsNotArray<number[]> // false
|
|
56
48
|
*
|
|
57
49
|
* type R = IsNotArray<number> // true
|
package/ts/bigint/bigint_type.ts
CHANGED
|
@@ -3,9 +3,7 @@ import type { IsAnyOrNever } from '../any/any_or_never.js'
|
|
|
3
3
|
/**
|
|
4
4
|
* Check if the type `T` is exactly `bigint`.
|
|
5
5
|
*
|
|
6
|
-
* ```
|
|
7
|
-
* import type { BigintType } from 'type-plus'
|
|
8
|
-
*
|
|
6
|
+
* ```ts
|
|
9
7
|
* type R = BigintType<bigint> // bigint
|
|
10
8
|
*
|
|
11
9
|
* type R = BigintType<1n> // never
|
|
@@ -19,9 +17,7 @@ export type BigintType<T, Then = T, Else = never> = IsAnyOrNever<T, Else, [T] ex
|
|
|
19
17
|
/**
|
|
20
18
|
* Is the type `T` exactly `bigint`.
|
|
21
19
|
*
|
|
22
|
-
* ```
|
|
23
|
-
* import type { IsBigint } from 'type-plus'
|
|
24
|
-
*
|
|
20
|
+
* ```ts
|
|
25
21
|
* type R = IsBigint<bigint> // true
|
|
26
22
|
*
|
|
27
23
|
* type R = IsBigint<1n> // false
|
|
@@ -35,9 +31,7 @@ export type IsBigint<T, Then = true, Else = false> = BigintType<T, Then, Else>
|
|
|
35
31
|
/**
|
|
36
32
|
* Check if the type `T` is not exactly `null`.
|
|
37
33
|
*
|
|
38
|
-
* ```
|
|
39
|
-
* import type { NotBigintType } from 'type-plus'
|
|
40
|
-
*
|
|
34
|
+
* ```ts
|
|
41
35
|
* type R = NotBigintType<bigint> // never
|
|
42
36
|
*
|
|
43
37
|
* type R = NotBigintType<1n> // 1n
|
|
@@ -51,9 +45,7 @@ export type NotBigintType<T, Then = T, Else = never> = BigintType<T, Else, Then>
|
|
|
51
45
|
/**
|
|
52
46
|
* Is the type `T` not exactly `null`.
|
|
53
47
|
*
|
|
54
|
-
* ```
|
|
55
|
-
* import type { IsNotBigint } from 'type-plus'
|
|
56
|
-
*
|
|
48
|
+
* ```ts
|
|
57
49
|
* type R = IsNotBigint<bigint> // false
|
|
58
50
|
*
|
|
59
51
|
* type R = IsNotBigint<1n> // true
|
|
@@ -3,9 +3,7 @@ import type { IsAnyOrNever } from '../any/any_or_never.js'
|
|
|
3
3
|
/**
|
|
4
4
|
* Check if the type `T` is exactly `bigint`.
|
|
5
5
|
*
|
|
6
|
-
* ```
|
|
7
|
-
* import type { StrictBigintType } from 'type-plus'
|
|
8
|
-
*
|
|
6
|
+
* ```ts
|
|
9
7
|
* type R = StrictBigintType<bigint> // bigint
|
|
10
8
|
*
|
|
11
9
|
* type R = StrictBigintType<1n> // never
|
|
@@ -23,9 +21,7 @@ export type StrictBigintType<T, Then = T, Else = never> = IsAnyOrNever<
|
|
|
23
21
|
/**
|
|
24
22
|
* Is the type `T` exactly `bigint`.
|
|
25
23
|
*
|
|
26
|
-
* ```
|
|
27
|
-
* import type { IsStrictBigint } from 'type-plus'
|
|
28
|
-
*
|
|
24
|
+
* ```ts
|
|
29
25
|
* type R = IsStrictBigint<bigint> // true
|
|
30
26
|
*
|
|
31
27
|
* type R = IsStrictBigint<1n> // false
|
|
@@ -39,9 +35,7 @@ export type IsStrictBigint<T, Then = true, Else = false> = StrictBigintType<T, T
|
|
|
39
35
|
/**
|
|
40
36
|
* Check if the type `T` is not exactly `bigint`.
|
|
41
37
|
*
|
|
42
|
-
* ```
|
|
43
|
-
* import type { NotStrictBigintType } from 'type-plus'
|
|
44
|
-
*
|
|
38
|
+
* ```ts
|
|
45
39
|
* type R = NotStrictBigintType<bigint> // never
|
|
46
40
|
*
|
|
47
41
|
* type R = NotStrictBigintType<1n> // 1n
|
|
@@ -55,9 +49,7 @@ export type NotStrictBigintType<T, Then = T, Else = never> = StrictBigintType<T,
|
|
|
55
49
|
/**
|
|
56
50
|
* Is the type `T` not exactly `bigint`.
|
|
57
51
|
*
|
|
58
|
-
* ```
|
|
59
|
-
* import type { IsNotStrictBigint } from 'type-plus'
|
|
60
|
-
*
|
|
52
|
+
* ```ts
|
|
61
53
|
* type R = IsNotStrictBigint<bigint> // false
|
|
62
54
|
*
|
|
63
55
|
* type R = IsNotStrictBigint<1n> // true
|
|
@@ -4,8 +4,6 @@ import type { IsAnyOrNever } from '../any/any_or_never.js'
|
|
|
4
4
|
* Check if the type `T` is `boolean`, including `true` and `false`.
|
|
5
5
|
*
|
|
6
6
|
* ```ts
|
|
7
|
-
* import type { BooleanType } from 'type-plus'
|
|
8
|
-
*
|
|
9
7
|
* type R = BooleanType<boolean> // boolean
|
|
10
8
|
* type R = BooleanType<true> // true
|
|
11
9
|
* type R = BooleanType<false> // false
|
|
@@ -24,8 +22,6 @@ export type BooleanType<T, Then = T, Else = never> = IsAnyOrNever<
|
|
|
24
22
|
* Check if the type `T` is not `boolean`, including `true` and `false`.
|
|
25
23
|
*
|
|
26
24
|
* ```ts
|
|
27
|
-
* import type { NotBooleanType } from 'type-plus'
|
|
28
|
-
*
|
|
29
25
|
* type R = NotBooleanType<boolean> // never
|
|
30
26
|
* type R = NotBooleanType<true> // never
|
|
31
27
|
* type R = NotBooleanType<false> // never
|
|
@@ -40,8 +36,6 @@ export type NotBooleanType<T, Then = T, Else = never> = BooleanType<T, Else, The
|
|
|
40
36
|
* Is the type `T` `boolean`, including `true` and `false`.
|
|
41
37
|
*
|
|
42
38
|
* ```ts
|
|
43
|
-
* import type { IsBoolean } from 'type-plus'
|
|
44
|
-
*
|
|
45
39
|
* type R = IsBoolean<boolean> // true
|
|
46
40
|
* type R = IsBoolean<true> // true
|
|
47
41
|
* type R = IsBoolean<false> // true
|
|
@@ -56,8 +50,6 @@ export type IsBoolean<T, Then = true, Else = false> = BooleanType<T, Then, Else>
|
|
|
56
50
|
* Is the type `T` not `boolean`, including `true` and `false`.
|
|
57
51
|
*
|
|
58
52
|
* ```ts
|
|
59
|
-
* import type { IsNotBoolean } from 'type-plus'
|
|
60
|
-
*
|
|
61
53
|
* type R = IsNotBoolean<boolean> // false
|
|
62
54
|
* type R = IsNotBoolean<true> // false
|
|
63
55
|
* type R = IsNotBoolean<false> // false
|
package/ts/boolean/false_type.ts
CHANGED
|
@@ -4,8 +4,6 @@ import type { IsAnyOrNever } from '../any/any_or_never.js'
|
|
|
4
4
|
* Check if the type `T` is exactly `false`.
|
|
5
5
|
*
|
|
6
6
|
* ```ts
|
|
7
|
-
* import type { FalseType } from 'type-plus'
|
|
8
|
-
*
|
|
9
7
|
* type R = FalseType<false> // false
|
|
10
8
|
*
|
|
11
9
|
* type R = FalseType<true> // never
|
|
@@ -22,8 +20,6 @@ export type FalseType<T, Then = T, Else = never> = IsAnyOrNever<
|
|
|
22
20
|
* Check if the type `T` is not exactly `false`.
|
|
23
21
|
*
|
|
24
22
|
* ```ts
|
|
25
|
-
* import type { NotFalseType } from 'type-plus'
|
|
26
|
-
*
|
|
27
23
|
* type R = NotFalseType<false> // never
|
|
28
24
|
*
|
|
29
25
|
* type R = NotFalseType<true> // true
|
|
@@ -36,8 +32,6 @@ export type NotFalseType<T, Then = T, Else = never> = FalseType<T, Else, Then>
|
|
|
36
32
|
* Is the type `T` exactly `false`.
|
|
37
33
|
*
|
|
38
34
|
* ```ts
|
|
39
|
-
* import type { IsFalse } from 'type-plus'
|
|
40
|
-
*
|
|
41
35
|
* type R = IsFalse<false> // true
|
|
42
36
|
*
|
|
43
37
|
* type R = IsFalse<true> // false
|
|
@@ -50,8 +44,6 @@ export type IsFalse<T, Then = true, Else = false> = FalseType<T, Then, Else>
|
|
|
50
44
|
* Is the type `T` not exactly `false`.
|
|
51
45
|
*
|
|
52
46
|
* ```ts
|
|
53
|
-
* import type { IsNotFalse } from 'type-plus'
|
|
54
|
-
*
|
|
55
47
|
* type R = IsNotFalse<false> // false
|
|
56
48
|
*
|
|
57
49
|
* type R = IsNotFalse<true> // true
|
|
@@ -4,8 +4,6 @@ import type { IsAnyOrNever } from '../any/any_or_never.js'
|
|
|
4
4
|
* Check if the type `T` is exactly `boolean`.
|
|
5
5
|
*
|
|
6
6
|
* ```ts
|
|
7
|
-
* import type { StrictBooleanType } from 'type-plus'
|
|
8
|
-
*
|
|
9
7
|
* type R = StrictBooleanType<boolean> // true
|
|
10
8
|
*
|
|
11
9
|
* type R = StrictBooleanType<true> // never
|
|
@@ -23,8 +21,6 @@ export type StrictBooleanType<T, Then = T, Else = never> = IsAnyOrNever<
|
|
|
23
21
|
* Check if the type `T` is not exactly `boolean`.
|
|
24
22
|
*
|
|
25
23
|
* ```ts
|
|
26
|
-
* import type { NotStrictBooleanType } from 'type-plus'
|
|
27
|
-
*
|
|
28
24
|
* type R = NotStrictBooleanType<boolean> // never
|
|
29
25
|
*
|
|
30
26
|
* type R = NotStrictBooleanType<true> // true
|
|
@@ -38,8 +34,6 @@ export type NotStrictBooleanType<T, Then = T, Else = never> = StrictBooleanType<
|
|
|
38
34
|
* Is the type `T` exactly `boolean`.
|
|
39
35
|
*
|
|
40
36
|
* ```ts
|
|
41
|
-
* import type { IsStrictBoolean } from 'type-plus'
|
|
42
|
-
*
|
|
43
37
|
* type R = IsStrictBoolean<boolean> // true
|
|
44
38
|
*
|
|
45
39
|
* type R = IsStrictBoolean<true> // false
|
|
@@ -53,8 +47,6 @@ export type IsStrictBoolean<T, Then = true, Else = false> = StrictBooleanType<T,
|
|
|
53
47
|
* Is the type `T` not exactly `false`.
|
|
54
48
|
*
|
|
55
49
|
* ```ts
|
|
56
|
-
* import type { IsNotStrictBoolean } from 'type-plus'
|
|
57
|
-
*
|
|
58
50
|
* type R = IsNotStrictBoolean<boolean> // false
|
|
59
51
|
*
|
|
60
52
|
* type R = IsNotStrictBoolean<true> // true
|
package/ts/boolean/true_type.ts
CHANGED
|
@@ -4,8 +4,6 @@ import type { IsAnyOrNever } from '../any/any_or_never.js'
|
|
|
4
4
|
* Check if the type `T` is exactly `true`.
|
|
5
5
|
*
|
|
6
6
|
* ```ts
|
|
7
|
-
* import type { TrueType } from 'type-plus'
|
|
8
|
-
*
|
|
9
7
|
* type R = TrueType<true> // true
|
|
10
8
|
*
|
|
11
9
|
* type R = TrueType<false> // never
|
|
@@ -22,8 +20,6 @@ export type TrueType<T, Then = T, Else = never> = IsAnyOrNever<
|
|
|
22
20
|
* Check if the type `T` is not exactly `true`.
|
|
23
21
|
*
|
|
24
22
|
* ```ts
|
|
25
|
-
* import type { NotTrueType } from 'type-plus'
|
|
26
|
-
*
|
|
27
23
|
* type R = NotTrueType<true> // never
|
|
28
24
|
*
|
|
29
25
|
* type R = NotTrueType<false> // false
|
|
@@ -36,8 +32,6 @@ export type NotTrueType<T, Then = T, Else = never> = TrueType<T, Else, Then>
|
|
|
36
32
|
* Is the type `T` exactly `true`.
|
|
37
33
|
*
|
|
38
34
|
* ```ts
|
|
39
|
-
* import type { IsTrue } from 'type-plus'
|
|
40
|
-
*
|
|
41
35
|
* type R = IsTrue<true> // true
|
|
42
36
|
*
|
|
43
37
|
* type R = IsTrue<false> // false
|
|
@@ -50,8 +44,6 @@ export type IsTrue<T, Then = true, Else = false> = TrueType<T, Then, Else>
|
|
|
50
44
|
* Is the type `T` not exactly `true`.
|
|
51
45
|
*
|
|
52
46
|
* ```ts
|
|
53
|
-
* import type { IsNotTrue } from 'type-plus'
|
|
54
|
-
*
|
|
55
47
|
* type R = IsNotTrue<true> // false
|
|
56
48
|
*
|
|
57
49
|
* type R = IsNotTrue<false> // true
|
package/ts/equal/equal.ts
CHANGED
|
@@ -26,8 +26,6 @@ type IdentityEqual<A, B, Then, Else> = (<_>() => _ extends (A & _) | _ ? 1 : 2)
|
|
|
26
26
|
* Checks `A` and `B` are equal.
|
|
27
27
|
*
|
|
28
28
|
* ```ts
|
|
29
|
-
* import { type Equal } from 'type-plus'
|
|
30
|
-
*
|
|
31
29
|
* type R = Equal<1, 1> // true
|
|
32
30
|
* type R = Equal<any, any> // true
|
|
33
31
|
* type R = Equal<boolean, boolean> // true
|
|
@@ -58,8 +56,16 @@ export type Equal<A, B, Then = true, Else = false> = [A, B] extends [B, A]
|
|
|
58
56
|
And<
|
|
59
57
|
IsObject<A>,
|
|
60
58
|
IsObject<B>,
|
|
61
|
-
IdentityEqual<
|
|
59
|
+
IdentityEqual<
|
|
60
|
+
Properties<A>,
|
|
61
|
+
Properties<B>,
|
|
62
|
+
[A, B] extends [(...args: infer P1) => any, (...args: infer P2) => any]
|
|
63
|
+
? Equal<P1, P2, Then, Else>
|
|
64
|
+
: Then,
|
|
65
|
+
Else
|
|
66
|
+
>,
|
|
62
67
|
// `A` and `B` are narrowed, need to check again.
|
|
68
|
+
// This is fixed in TS 5.0.2, but keeping it to support older versions.
|
|
63
69
|
[A, B] extends [B, A] ? Then : Else
|
|
64
70
|
>
|
|
65
71
|
>
|
|
@@ -71,8 +77,6 @@ export type Equal<A, B, Then = true, Else = false> = [A, B] extends [B, A]
|
|
|
71
77
|
* Checks `A` and `B` are not equal.
|
|
72
78
|
*
|
|
73
79
|
* ```ts
|
|
74
|
-
* import { type NotEqual } from 'type-plus'
|
|
75
|
-
*
|
|
76
80
|
* type R = NotEqual<1, 1> // false
|
|
77
81
|
* type R = NotEqual<any, any> // false
|
|
78
82
|
* type R = NotEqual<boolean, boolean> // false
|
package/ts/equal/readme.md
CHANGED
|
@@ -26,6 +26,9 @@ type R = Equal<{ a: 1 }, { a: 1; b: 2 }> // false
|
|
|
26
26
|
---
|
|
27
27
|
|
|
28
28
|
[![Just Code: Equality is hard][equality-is-hard]][equality-is-hard-url]
|
|
29
|
+
[![Just Code: Equality is hard part 2][equality-is-hard-2]][equality-is-hard-2-url]
|
|
29
30
|
|
|
30
31
|
[equality-is-hard]: https://img.youtube.com/vi/VEqrFzCzo28/0.jpg
|
|
31
32
|
[equality-is-hard-url]: https://www.youtube.com/watch?v=VEqrFzCzo28
|
|
33
|
+
[equality-is-hard-2]: https://img.youtube.com/vi/l6G6Rz1n9Sw/0.jpg
|
|
34
|
+
[equality-is-hard-2-url]: https://www.youtube.com/watch?v=l6G6Rz1n9Sw
|
|
@@ -4,8 +4,6 @@ import type { IsAnyOrNever } from '../any/any_or_never.js'
|
|
|
4
4
|
* Check if `T` is a `Function`.
|
|
5
5
|
*
|
|
6
6
|
* ```ts
|
|
7
|
-
* import type { FunctionType } from 'type-plus'
|
|
8
|
-
*
|
|
9
7
|
* type R = FunctionType<Function> // Function
|
|
10
8
|
* type R = FunctionType<() => void> // () => void
|
|
11
9
|
* type R = FunctionType<(() => void) | { a: 1 }> // (() => void) | { a: 1 }
|
|
@@ -25,8 +23,6 @@ export type FunctionType<T, Then = T, Else = never> = IsAnyOrNever<
|
|
|
25
23
|
* Is `T` a `Function`.
|
|
26
24
|
*
|
|
27
25
|
* ```ts
|
|
28
|
-
* import type { IsFunction } from 'type-plus'
|
|
29
|
-
*
|
|
30
26
|
* type R = IsFunction<Function> // Function
|
|
31
27
|
* type R = IsFunction<() => void> // () => void
|
|
32
28
|
* type R = IsFunction<(() => void) | { a: 1 }> // (() => void) | { a: 1 }
|
|
@@ -42,8 +38,6 @@ export type IsFunction<T, Then = true, Else = false> = FunctionType<T, Then, Els
|
|
|
42
38
|
* Check if `T` is not a `Function`.
|
|
43
39
|
*
|
|
44
40
|
* ```ts
|
|
45
|
-
* import type { NotFunctionType } from 'type-plus'
|
|
46
|
-
*
|
|
47
41
|
* type R = NotFunctionType<Function> // never
|
|
48
42
|
* type R = NotFunctionType<() => void> // never
|
|
49
43
|
* type R = NotFunctionType<(() => void) | { a: 1 }> // never
|
|
@@ -59,8 +53,6 @@ export type NotFunctionType<T, Then = T, Else = never> = FunctionType<T, Else, T
|
|
|
59
53
|
* Is `T` not a `Function`.
|
|
60
54
|
*
|
|
61
55
|
* ```ts
|
|
62
|
-
* import type { IsNotFunction } from 'type-plus'
|
|
63
|
-
*
|
|
64
56
|
* type R = IsNotFunction<Function> // false
|
|
65
57
|
* type R = IsNotFunction<() => void> // false
|
|
66
58
|
* type R = IsNotFunction<(() => void) | { a: 1 }> // false
|
|
@@ -4,8 +4,6 @@ import type { IsAnyOrNever } from '../any/any_or_never.js'
|
|
|
4
4
|
* Check if `T` is exactly `Function`.
|
|
5
5
|
*
|
|
6
6
|
* ```ts
|
|
7
|
-
* import type { StrictFunctionType } from 'type-plus'
|
|
8
|
-
*
|
|
9
7
|
* type R = StrictFunctionType<Function> // Function
|
|
10
8
|
*
|
|
11
9
|
* type R = StrictFunctionType<() => void> // never
|
|
@@ -22,8 +20,6 @@ export type StrictFunctionType<T, Then = T, Else = never> = IsAnyOrNever<
|
|
|
22
20
|
* Check if `T` is not exactly `Function`.
|
|
23
21
|
*
|
|
24
22
|
* ```ts
|
|
25
|
-
* import type { NotStrictFunctionType } from 'type-plus'
|
|
26
|
-
*
|
|
27
23
|
* type R = NotStrictFunctionType<Function> // never
|
|
28
24
|
* type R = NotStrictFunctionType<() => void> // () => void
|
|
29
25
|
*
|
|
@@ -36,8 +32,6 @@ export type NotStrictFunctionType<T, Then = T, Else = never> = StrictFunctionTyp
|
|
|
36
32
|
* Is `T` exactly `Function`.
|
|
37
33
|
*
|
|
38
34
|
* ```ts
|
|
39
|
-
* import type { IsStrictFunction } from 'type-plus'
|
|
40
|
-
*
|
|
41
35
|
* type R = IsStrictFunction<Function> // true
|
|
42
36
|
*
|
|
43
37
|
* type R = IsStrictFunction<() => void> // false
|
|
@@ -50,8 +44,6 @@ export type IsStrictFunction<T, Then = true, Else = false> = StrictFunctionType<
|
|
|
50
44
|
* Is `T` not exactly `Function`.
|
|
51
45
|
*
|
|
52
46
|
* ```ts
|
|
53
|
-
* import type { IsNotStrictFunction } from 'type-plus'
|
|
54
|
-
*
|
|
55
47
|
* type R = IsNotStrictFunction<Function> // false
|
|
56
48
|
*
|
|
57
49
|
* type R = IsNotStrictFunction<() => void> // true
|
package/ts/index.ts
CHANGED
|
@@ -81,12 +81,15 @@ export type {
|
|
|
81
81
|
NotStrictStringType,
|
|
82
82
|
StrictStringType
|
|
83
83
|
} from './string/strict_string_type.js'
|
|
84
|
+
export type { StringIncludes, StringSplit } from './string/string.js'
|
|
85
|
+
export type { StringPlus } from './string/string_plus.js'
|
|
84
86
|
export type { IsNotString, IsString, NotStringType, StringType } from './string/string_type.js'
|
|
85
87
|
export type { IsNotSymbol, IsSymbol, NotSymbolType, SymbolType } from './symbol/symbol_type.js'
|
|
86
88
|
export * from './testing/stub.js'
|
|
87
89
|
export * from './testing/test_type.js'
|
|
88
90
|
export type { IsNotTuple, IsTuple, NotTupleType, TupleType } from './tuple/tuple_type.js'
|
|
89
91
|
export type { Failed, FailedT } from './type/failed.js'
|
|
92
|
+
export type { NoInfer } from './type/no_infer.js'
|
|
90
93
|
export type {
|
|
91
94
|
IsNotUndefined,
|
|
92
95
|
IsUndefined,
|
package/ts/never/never_type.ts
CHANGED
|
@@ -16,8 +16,6 @@ export type Is_Never = Brand<'is_never', symbol>
|
|
|
16
16
|
* If it is not, returns `Not_Never`.
|
|
17
17
|
*
|
|
18
18
|
* ```ts
|
|
19
|
-
* import type { NeverType } from 'type-plus'
|
|
20
|
-
*
|
|
21
19
|
* type R = NeverType<never> // never
|
|
22
20
|
*
|
|
23
21
|
* type R = NeverType<1> // 'not never'
|
|
@@ -30,8 +28,6 @@ export type NeverType<T, Then = T, Else = Not_Never> = [T, never] extends [never
|
|
|
30
28
|
* If it is not, returns `Is_Never`.
|
|
31
29
|
*
|
|
32
30
|
* ```ts
|
|
33
|
-
* import type { NotNeverType } from 'type-plus'
|
|
34
|
-
*
|
|
35
31
|
* type R = NotNeverType<1> // 1
|
|
36
32
|
*
|
|
37
33
|
* type R = NotNeverType<never> // 'is_never'
|
|
@@ -42,9 +38,7 @@ export type NotNeverType<T, Then = T, Else = Is_Never> = NeverType<T, Else, Then
|
|
|
42
38
|
/**
|
|
43
39
|
* Is `T` `never`.
|
|
44
40
|
*
|
|
45
|
-
* ```
|
|
46
|
-
* import type { IsNever } from 'type-plus'
|
|
47
|
-
*
|
|
41
|
+
* ```ts
|
|
48
42
|
* type R = IsNever<never> // true
|
|
49
43
|
*
|
|
50
44
|
* type R = IsNever<1> // false
|
|
@@ -55,9 +49,7 @@ export type IsNever<T, Then = true, Else = false> = NeverType<T, Then, Else>
|
|
|
55
49
|
/**
|
|
56
50
|
* Is `T` not `never`.
|
|
57
51
|
*
|
|
58
|
-
* ```
|
|
59
|
-
* import type { IsNotNever } from 'type-plus'
|
|
60
|
-
*
|
|
52
|
+
* ```ts
|
|
61
53
|
* type R = IsNotNever<1> // true
|
|
62
54
|
*
|
|
63
55
|
* type R = IsNotNever<never> // false
|