type-plus 7.6.2 → 8.0.0-beta.2
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/esm/any/any.d.ts +49 -0
- package/esm/any/any.d.ts.map +1 -0
- package/esm/any/any.js +2 -0
- package/esm/any/any.js.map +1 -0
- package/esm/any/is_any.d.ts +55 -0
- package/esm/any/is_any.d.ts.map +1 -0
- package/esm/any/is_any.js +2 -0
- package/esm/any/is_any.js.map +1 -0
- package/esm/any/is_not_any.d.ts +55 -0
- package/esm/any/is_not_any.d.ts.map +1 -0
- package/esm/any/is_not_any.js +2 -0
- package/esm/any/is_not_any.js.map +1 -0
- package/esm/array/array.at.d.ts +11 -4
- package/esm/array/array.at.d.ts.map +1 -1
- package/esm/array/array.at.js.map +1 -1
- package/esm/array/array.entries.d.ts +6 -3
- package/esm/array/array.entries.d.ts.map +1 -1
- package/esm/array/array.entries.js.map +1 -1
- package/esm/array/array.find_last.d.ts +5 -2
- package/esm/array/array.find_last.d.ts.map +1 -1
- package/esm/array/array.find_last.js.map +1 -1
- package/esm/array/array.reverse.d.ts +5 -1
- package/esm/array/array.reverse.d.ts.map +1 -1
- package/esm/array/array.reverse.js.map +1 -1
- package/esm/array/array.some.d.ts +7 -7
- package/esm/array/array.some.d.ts.map +1 -1
- package/esm/array/array.some.js.map +1 -1
- package/esm/array/array_plus.common_prop_keys.d.ts +9 -5
- package/esm/array/array_plus.common_prop_keys.d.ts.map +1 -1
- package/esm/array/array_plus.common_prop_keys.js.map +1 -1
- package/esm/array/array_plus.concat.d.ts +1 -1
- package/esm/array/array_plus.concat.d.ts.map +1 -1
- package/esm/array/array_plus.concat.js.map +1 -1
- package/esm/array/array_plus.d.ts +3 -1
- package/esm/array/array_plus.d.ts.map +1 -1
- package/esm/array/array_plus.drop_match.d.ts +4 -3
- package/esm/array/array_plus.drop_match.d.ts.map +1 -1
- package/esm/array/array_plus.drop_match.js.map +1 -1
- package/esm/array/array_plus.element_match.d.ts +15 -12
- package/esm/array/array_plus.element_match.d.ts.map +1 -1
- package/esm/array/array_plus.element_match.js.map +1 -1
- package/esm/array/array_plus.filter.d.ts +28 -1
- package/esm/array/array_plus.filter.d.ts.map +1 -1
- package/esm/array/array_plus.filter.js +1 -0
- package/esm/array/array_plus.filter.js.map +1 -1
- package/esm/array/array_plus.find.d.ts +17 -14
- package/esm/array/array_plus.find.d.ts.map +1 -1
- package/esm/array/array_plus.find.js.map +1 -1
- package/esm/array/array_plus.index_at.d.ts +42 -0
- package/esm/array/array_plus.index_at.d.ts.map +1 -0
- package/esm/array/array_plus.index_at.js +84 -0
- package/esm/array/array_plus.index_at.js.map +1 -0
- package/esm/array/array_plus.is_index_out_of_bound.d.ts +21 -0
- package/esm/array/array_plus.is_index_out_of_bound.d.ts.map +1 -0
- package/esm/array/array_plus.is_index_out_of_bound.js +2 -0
- package/esm/array/array_plus.is_index_out_of_bound.js.map +1 -0
- package/esm/array/array_plus.is_readonly.d.ts +35 -0
- package/esm/array/array_plus.is_readonly.d.ts.map +1 -0
- package/esm/array/array_plus.is_readonly.js +2 -0
- package/esm/array/array_plus.is_readonly.js.map +1 -0
- package/esm/array/array_plus.js.map +1 -1
- package/esm/array/array_plus.pad_start.d.ts +1 -1
- package/esm/array/array_plus.pad_start.d.ts.map +1 -1
- package/esm/array/array_plus.pad_start.js.map +1 -1
- package/esm/array/array_plus.split_at.d.ts +23 -13
- package/esm/array/array_plus.split_at.d.ts.map +1 -1
- package/esm/array/array_plus.split_at.js.map +1 -1
- package/esm/array/filter.d.ts +2 -2
- package/esm/array/filter.d.ts.map +1 -1
- package/esm/array/filter.js.map +1 -1
- package/esm/array/find_first.d.ts +10 -7
- package/esm/array/find_first.d.ts.map +1 -1
- package/esm/array/find_first.js.map +1 -1
- package/esm/array/head.d.ts +7 -5
- package/esm/array/head.d.ts.map +1 -1
- package/esm/array/head.js.map +1 -1
- package/esm/array/intersect_of_props.d.ts +1 -1
- package/esm/array/intersect_of_props.d.ts.map +1 -1
- package/esm/array/intersect_of_props.js.map +1 -1
- package/esm/array/is_array.d.ts +89 -0
- package/esm/array/is_array.d.ts.map +1 -0
- package/esm/array/is_array.js +2 -0
- package/esm/array/is_array.js.map +1 -0
- package/esm/array/is_not_array.d.ts +89 -0
- package/esm/array/is_not_array.d.ts.map +1 -0
- package/esm/array/is_not_array.js +2 -0
- package/esm/array/is_not_array.js.map +1 -0
- package/esm/array/last.d.ts +7 -5
- package/esm/array/last.d.ts.map +1 -1
- package/esm/array/last.js.map +1 -1
- package/esm/array/literal_array.d.ts.map +1 -1
- package/esm/array/literal_array.js.map +1 -1
- package/esm/array/loose_array_type.d.ts +65 -0
- package/esm/array/loose_array_type.d.ts.map +1 -0
- package/esm/array/loose_array_type.js +2 -0
- package/esm/array/loose_array_type.js.map +1 -0
- package/esm/array/pad_start.d.ts +1 -1
- package/esm/array/pad_start.d.ts.map +1 -1
- package/esm/array/pad_start.js.map +1 -1
- package/esm/array/reduce_while.d.ts.map +1 -1
- package/esm/array/reduce_while.js.map +1 -1
- package/esm/array/reverse.d.ts.map +1 -1
- package/esm/array/reverse.js.map +1 -1
- package/esm/array/union_of_props.d.ts +2 -2
- package/esm/array/union_of_props.d.ts.map +1 -1
- package/esm/array/union_of_props.js.map +1 -1
- package/esm/array/union_of_values.d.ts +2 -2
- package/esm/array/union_of_values.d.ts.map +1 -1
- package/esm/array/union_of_values.js.map +1 -1
- package/esm/assertion/assert_type.d.ts +2 -2
- package/esm/assertion/assert_type.d.ts.map +1 -1
- package/esm/assertion/assert_type.js +44 -47
- package/esm/assertion/assert_type.js.map +1 -1
- package/esm/bigint/cast.d.ts.map +1 -1
- package/esm/bigint/cast.js.map +1 -1
- package/esm/bigint/is_bigint.d.ts +97 -0
- package/esm/bigint/is_bigint.d.ts.map +1 -0
- package/esm/bigint/is_bigint.js +2 -0
- package/esm/bigint/is_bigint.js.map +1 -0
- package/esm/bigint/is_bigint_literal.d.ts +85 -0
- package/esm/bigint/is_bigint_literal.d.ts.map +1 -0
- package/esm/bigint/is_bigint_literal.js +2 -0
- package/esm/bigint/is_bigint_literal.js.map +1 -0
- package/esm/bigint/is_not_bigint.d.ts +94 -0
- package/esm/bigint/is_not_bigint.d.ts.map +1 -0
- package/esm/bigint/is_not_bigint.js +2 -0
- package/esm/bigint/is_not_bigint.js.map +1 -0
- package/esm/bigint/is_not_bigint_literal.d.ts +83 -0
- package/esm/bigint/is_not_bigint_literal.d.ts.map +1 -0
- package/esm/bigint/is_not_bigint_literal.js +2 -0
- package/esm/bigint/is_not_bigint_literal.js.map +1 -0
- package/esm/binary/Bit.d.ts.map +1 -1
- package/esm/binary/Bit.js.map +1 -1
- package/esm/binary/_binary.d.ts.map +1 -1
- package/esm/binary/_binary.js.map +1 -1
- package/esm/binary/index.d.ts.map +1 -1
- package/esm/binary/index.js.map +1 -1
- package/esm/boolean/is_boolean.d.ts +91 -0
- package/esm/boolean/is_boolean.d.ts.map +1 -0
- package/esm/boolean/is_boolean.js +2 -0
- package/esm/boolean/is_boolean.js.map +1 -0
- package/esm/boolean/is_false.d.ts +78 -0
- package/esm/boolean/is_false.d.ts.map +1 -0
- package/esm/boolean/is_false.js +2 -0
- package/esm/boolean/is_false.js.map +1 -0
- package/esm/boolean/is_not_boolean.d.ts +91 -0
- package/esm/boolean/is_not_boolean.d.ts.map +1 -0
- package/esm/boolean/is_not_boolean.js +2 -0
- package/esm/boolean/is_not_boolean.js.map +1 -0
- package/esm/boolean/is_not_false.d.ts +79 -0
- package/esm/boolean/is_not_false.d.ts.map +1 -0
- package/esm/boolean/is_not_false.js +2 -0
- package/esm/boolean/is_not_false.js.map +1 -0
- package/esm/boolean/is_not_true.d.ts +80 -0
- package/esm/boolean/is_not_true.d.ts.map +1 -0
- package/esm/boolean/is_not_true.js +2 -0
- package/esm/boolean/is_not_true.js.map +1 -0
- package/esm/boolean/is_true.d.ts +78 -0
- package/esm/boolean/is_true.d.ts.map +1 -0
- package/esm/boolean/is_true.js +2 -0
- package/esm/boolean/is_true.js.map +1 -0
- package/esm/class/AnyConstructor.d.ts +1 -1
- package/esm/class/AnyConstructor.d.ts.map +1 -1
- package/esm/class/AnyConstructor.js.map +1 -1
- package/esm/class/index.d.ts.map +1 -1
- package/esm/class/index.js.map +1 -1
- package/esm/class/isConstructor.d.ts +1 -1
- package/esm/class/isConstructor.d.ts.map +1 -1
- package/esm/class/isConstructor.js +2 -2
- package/esm/class/isConstructor.js.map +1 -1
- package/esm/composable_types.d.ts.map +1 -1
- package/esm/composable_types.js.map +1 -1
- package/esm/equal/equal.d.ts +10 -6
- package/esm/equal/equal.d.ts.map +1 -1
- package/esm/equal/equal.js.map +1 -1
- package/esm/equal/identity_equal.d.ts +6 -0
- package/esm/equal/identity_equal.d.ts.map +1 -0
- package/esm/equal/identity_equal.js +2 -0
- package/esm/equal/identity_equal.js.map +1 -0
- package/esm/function/any_function.d.ts.map +1 -1
- package/esm/function/any_function.js.map +1 -1
- package/esm/function/extract_function.d.ts.map +1 -1
- package/esm/function/extract_function.js.map +1 -1
- package/esm/function/is_function.d.ts +61 -0
- package/esm/function/is_function.d.ts.map +1 -0
- package/esm/function/is_function.js +2 -0
- package/esm/function/is_function.js.map +1 -0
- package/esm/function/is_not_function.d.ts +73 -0
- package/esm/function/is_not_function.d.ts.map +1 -0
- package/esm/function/is_not_function.js +2 -0
- package/esm/function/is_not_function.js.map +1 -0
- package/esm/function/is_not_strict_function.d.ts +31 -0
- package/esm/function/is_not_strict_function.d.ts.map +1 -0
- package/esm/function/is_not_strict_function.js +2 -0
- package/esm/function/is_not_strict_function.js.map +1 -0
- package/esm/function/is_strict_function.d.ts +31 -0
- package/esm/function/is_strict_function.d.ts.map +1 -0
- package/esm/function/is_strict_function.js +2 -0
- package/esm/function/is_strict_function.js.map +1 -0
- package/esm/functional/ChainFn.d.ts.map +1 -1
- package/esm/functional/ChainFn.js.map +1 -1
- package/esm/functional/Maybe.d.ts +1 -1
- package/esm/functional/Maybe.d.ts.map +1 -1
- package/esm/functional/Maybe.js.map +1 -1
- package/esm/functional/compose.d.ts.map +1 -1
- package/esm/functional/compose.js +1 -0
- package/esm/functional/compose.js.map +1 -1
- package/esm/functional/context.d.ts.map +1 -1
- package/esm/functional/context.js +1 -1
- package/esm/functional/context.js.map +1 -1
- package/esm/functional/index.d.ts.map +1 -1
- package/esm/functional/index.js.map +1 -1
- package/esm/index.d.ts +83 -28
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +2 -0
- package/esm/index.js.map +1 -1
- package/esm/json.d.ts.map +1 -1
- package/esm/json.js.map +1 -1
- package/esm/math/abs.d.ts +4 -5
- package/esm/math/abs.d.ts.map +1 -1
- package/esm/math/abs.js.map +1 -1
- package/esm/math/add.d.ts.map +1 -1
- package/esm/math/add.js.map +1 -1
- package/esm/math/greater_than.d.ts +1 -1
- package/esm/math/greater_than.d.ts.map +1 -1
- package/esm/math/greater_than.js.map +1 -1
- package/esm/math/index.d.ts +1 -1
- package/esm/math/index.d.ts.map +1 -1
- package/esm/math/index.js.map +1 -1
- package/esm/math/math_plus.d.ts.map +1 -1
- package/esm/math/math_plus.js.map +1 -1
- package/esm/math/math_plus.to_negative.d.ts.map +1 -1
- package/esm/math/math_plus.to_negative.js.map +1 -1
- package/esm/math/max.d.ts +1 -1
- package/esm/math/max.d.ts.map +1 -1
- package/esm/math/max.js.map +1 -1
- package/esm/math/multiply.d.ts.map +1 -1
- package/esm/math/multiply.js.map +1 -1
- package/esm/math/numeric_struct.d.ts.map +1 -1
- package/esm/math/numeric_struct.js.map +1 -1
- package/esm/math/subtract.d.ts.map +1 -1
- package/esm/math/subtract.js.map +1 -1
- package/esm/mix_types/box.d.ts +47 -0
- package/esm/mix_types/box.d.ts.map +1 -0
- package/esm/mix_types/box.js +2 -0
- package/esm/mix_types/box.js.map +1 -0
- package/esm/mix_types/exclude.d.ts +19 -0
- package/esm/mix_types/exclude.d.ts.map +1 -0
- package/esm/mix_types/exclude.js +2 -0
- package/esm/mix_types/exclude.js.map +1 -0
- package/esm/mix_types/is_any_or_never.d.ts +28 -0
- package/esm/mix_types/is_any_or_never.d.ts.map +1 -0
- package/esm/mix_types/is_any_or_never.js +2 -0
- package/esm/mix_types/is_any_or_never.js.map +1 -0
- package/esm/mix_types/merge.d.ts +38 -0
- package/esm/mix_types/merge.d.ts.map +1 -0
- package/esm/mix_types/merge.js +14 -0
- package/esm/mix_types/merge.js.map +1 -0
- package/esm/never/is_never.d.ts +59 -0
- package/esm/never/is_never.d.ts.map +1 -0
- package/esm/never/is_never.js +2 -0
- package/esm/never/is_never.js.map +1 -0
- package/esm/never/is_not_never.d.ts +59 -0
- package/esm/never/is_not_never.d.ts.map +1 -0
- package/esm/never/is_not_never.js +2 -0
- package/esm/never/is_not_never.js.map +1 -0
- package/esm/never/never.d.ts +75 -0
- package/esm/never/never.d.ts.map +1 -0
- package/esm/never/never.js +2 -0
- package/esm/never/never.js.map +1 -0
- package/esm/nodejs/index.d.ts.map +1 -1
- package/esm/nodejs/index.js.map +1 -1
- package/esm/nodejs/isNodeError.d.ts.map +1 -1
- package/esm/nodejs/isNodeError.js.map +1 -1
- package/esm/nominal/brand.d.ts.map +1 -1
- package/esm/nominal/brand.js +1 -3
- package/esm/nominal/brand.js.map +1 -1
- package/esm/nominal/constants.d.ts.map +1 -1
- package/esm/nominal/constants.js.map +1 -1
- package/esm/nominal/flavor.d.ts.map +1 -1
- package/esm/nominal/flavor.js +1 -3
- package/esm/nominal/flavor.js.map +1 -1
- package/esm/nominal/index.d.ts.map +1 -1
- package/esm/nominal/index.js.map +1 -1
- package/esm/nominal/nominal_match.d.ts.map +1 -1
- package/esm/nominal/nominal_match.js +1 -3
- package/esm/nominal/nominal_match.js.map +1 -1
- package/esm/null/is_not_null.d.ts +71 -0
- package/esm/null/is_not_null.d.ts.map +1 -0
- package/esm/null/is_not_null.js +2 -0
- package/esm/null/is_not_null.js.map +1 -0
- package/esm/null/is_null.d.ts +75 -0
- package/esm/null/is_null.d.ts.map +1 -0
- package/esm/null/is_null.js +2 -0
- package/esm/null/is_null.js.map +1 -0
- package/esm/number/cast.d.ts.map +1 -1
- package/esm/number/cast.js.map +1 -1
- package/esm/number/is_not_number.d.ts +84 -0
- package/esm/number/is_not_number.d.ts.map +1 -0
- package/esm/number/is_not_number.js +2 -0
- package/esm/number/is_not_number.js.map +1 -0
- package/esm/number/is_not_number_literal.d.ts +83 -0
- package/esm/number/is_not_number_literal.d.ts.map +1 -0
- package/esm/number/is_not_number_literal.js +2 -0
- package/esm/number/is_not_number_literal.js.map +1 -0
- package/esm/number/is_number.d.ts +87 -0
- package/esm/number/is_number.d.ts.map +1 -0
- package/esm/number/is_number.js +2 -0
- package/esm/number/is_number.js.map +1 -0
- package/esm/number/is_number_literal.d.ts +85 -0
- package/esm/number/is_number_literal.d.ts.map +1 -0
- package/esm/number/is_number_literal.js +2 -0
- package/esm/number/is_number_literal.js.map +1 -0
- package/esm/number/number_array.d.ts.map +1 -1
- package/esm/number/number_array.js.map +1 -1
- package/esm/number/number_plus.d.ts +11 -6
- package/esm/number/number_plus.d.ts.map +1 -1
- package/esm/number/number_plus.js +1 -0
- package/esm/number/number_plus.js.map +1 -1
- package/esm/numeric/cast.d.ts.map +1 -1
- package/esm/numeric/cast.js.map +1 -1
- package/esm/numeric/is_integer.d.ts +30 -0
- package/esm/numeric/is_integer.d.ts.map +1 -0
- package/esm/numeric/is_integer.js +2 -0
- package/esm/numeric/is_integer.js.map +1 -0
- package/esm/numeric/is_negative.d.ts +35 -0
- package/esm/numeric/is_negative.d.ts.map +1 -0
- package/esm/numeric/is_negative.js +2 -0
- package/esm/numeric/is_negative.js.map +1 -0
- package/esm/numeric/is_not_integer.d.ts +32 -0
- package/esm/numeric/is_not_integer.d.ts.map +1 -0
- package/esm/numeric/is_not_integer.js +2 -0
- package/esm/numeric/is_not_integer.js.map +1 -0
- package/esm/numeric/is_not_negative.d.ts +35 -0
- package/esm/numeric/is_not_negative.d.ts.map +1 -0
- package/esm/numeric/is_not_negative.js +2 -0
- package/esm/numeric/is_not_negative.js.map +1 -0
- package/esm/numeric/is_not_numeric.d.ts +19 -0
- package/esm/numeric/is_not_numeric.d.ts.map +1 -0
- package/esm/numeric/is_not_numeric.js +2 -0
- package/esm/numeric/is_not_numeric.js.map +1 -0
- package/esm/numeric/is_not_positive.d.ts +36 -0
- package/esm/numeric/is_not_positive.d.ts.map +1 -0
- package/esm/numeric/is_not_positive.js +2 -0
- package/esm/numeric/is_not_positive.js.map +1 -0
- package/esm/numeric/is_numeric.d.ts +19 -0
- package/esm/numeric/is_numeric.d.ts.map +1 -0
- package/esm/numeric/is_numeric.js +2 -0
- package/esm/numeric/is_numeric.js.map +1 -0
- package/esm/numeric/is_positive.d.ts +35 -0
- package/esm/numeric/is_positive.d.ts.map +1 -0
- package/esm/numeric/is_positive.js +2 -0
- package/esm/numeric/is_positive.js.map +1 -0
- package/esm/numeric/numeric_plus.d.ts +9 -4
- package/esm/numeric/numeric_plus.d.ts.map +1 -1
- package/esm/numeric/numeric_plus.js.map +1 -1
- package/esm/numeric/numeric_type.d.ts +0 -50
- package/esm/numeric/numeric_type.d.ts.map +1 -1
- package/esm/numeric/numeric_type.js.map +1 -1
- package/esm/object/ANotB.d.ts +1 -1
- package/esm/object/ANotB.d.ts.map +1 -1
- package/esm/object/ANotB.js.map +1 -1
- package/esm/object/ExcludePropType.d.ts.map +1 -1
- package/esm/object/ExcludePropType.js.map +1 -1
- package/esm/object/IsDisjoint.d.ts +1 -1
- package/esm/object/IsDisjoint.d.ts.map +1 -1
- package/esm/object/IsDisjoint.js.map +1 -1
- package/esm/object/IsRecord.d.ts.map +1 -1
- package/esm/object/IsRecord.js.map +1 -1
- package/esm/object/KeyTypes.d.ts.map +1 -1
- package/esm/object/KeyTypes.js.map +1 -1
- package/esm/object/KeyofOptional.d.ts.map +1 -1
- package/esm/object/KeyofOptional.js.map +1 -1
- package/esm/object/KeysWithDiffType.d.ts +2 -2
- package/esm/object/KeysWithDiffType.d.ts.map +1 -1
- package/esm/object/KeysWithDiffType.js.map +1 -1
- package/esm/object/KnownKeys.d.ts.map +1 -1
- package/esm/object/KnownKeys.js.map +1 -1
- package/esm/object/Partial.d.ts.map +1 -1
- package/esm/object/Partial.js.map +1 -1
- package/esm/object/RecursiveIntersect.d.ts +2 -2
- package/esm/object/RecursiveIntersect.d.ts.map +1 -1
- package/esm/object/RecursiveIntersect.js.map +1 -1
- package/esm/object/RecursiveRequired.d.ts +1 -1
- package/esm/object/RecursiveRequired.d.ts.map +1 -1
- package/esm/object/RecursiveRequired.js.map +1 -1
- package/esm/object/Required.d.ts +1 -2
- package/esm/object/Required.d.ts.map +1 -1
- package/esm/object/Required.js.map +1 -1
- package/esm/object/RequiredKeys.d.ts +2 -2
- package/esm/object/RequiredKeys.d.ts.map +1 -1
- package/esm/object/RequiredKeys.js.map +1 -1
- package/esm/object/SpreadRecord.d.ts.map +1 -1
- package/esm/object/SpreadRecord.js.map +1 -1
- package/esm/object/ValueOf.d.ts.map +1 -1
- package/esm/object/ValueOf.js.map +1 -1
- package/esm/object/any_record.d.ts +3 -0
- package/esm/object/any_record.d.ts.map +1 -0
- package/esm/object/any_record.js +2 -0
- package/esm/object/any_record.js.map +1 -0
- package/esm/object/everyKey.d.ts.map +1 -1
- package/esm/object/everyKey.js.map +1 -1
- package/esm/object/facade.d.ts +1 -1
- package/esm/object/facade.d.ts.map +1 -1
- package/esm/object/facade.js.map +1 -1
- package/esm/object/filterKey.d.ts.map +1 -1
- package/esm/object/filterKey.js.map +1 -1
- package/esm/object/findKey.d.ts.map +1 -1
- package/esm/object/findKey.js.map +1 -1
- package/esm/object/forEachKey.d.ts.map +1 -1
- package/esm/object/forEachKey.js +1 -1
- package/esm/object/forEachKey.js.map +1 -1
- package/esm/object/getField.d.ts.map +1 -1
- package/esm/object/getField.js.map +1 -1
- package/esm/object/hasKey.d.ts +1 -1
- package/esm/object/hasKey.d.ts.map +1 -1
- package/esm/object/hasKey.js.map +1 -1
- package/esm/object/hasProperty.d.ts.map +1 -1
- package/esm/object/hasProperty.js.map +1 -1
- package/esm/object/index.d.ts +15 -16
- package/esm/object/index.d.ts.map +1 -1
- package/esm/object/index.js.map +1 -1
- package/esm/object/is_not_object.d.ts +119 -0
- package/esm/object/is_not_object.d.ts.map +1 -0
- package/esm/object/is_not_object.js +2 -0
- package/esm/object/is_not_object.js.map +1 -0
- package/esm/object/is_object.d.ts +104 -0
- package/esm/object/is_object.d.ts.map +1 -0
- package/esm/object/is_object.js +2 -0
- package/esm/object/is_object.js.map +1 -0
- package/esm/object/left_join.d.ts +1 -6
- package/esm/object/left_join.d.ts.map +1 -1
- package/esm/object/left_join.js.map +1 -1
- package/esm/object/mapKey.d.ts.map +1 -1
- package/esm/object/mapKey.js.map +1 -1
- package/esm/object/mapProperties.d.ts +1 -1
- package/esm/object/mapProperties.d.ts.map +1 -1
- package/esm/object/mapProperties.js.map +1 -1
- package/esm/object/merge.d.ts +80 -0
- package/esm/object/merge.d.ts.map +1 -0
- package/esm/object/merge.js +2 -0
- package/esm/object/merge.js.map +1 -0
- package/esm/object/object_plus.d.ts +2 -0
- package/esm/object/object_plus.d.ts.map +1 -0
- package/esm/object/object_plus.js +2 -0
- package/esm/object/object_plus.js.map +1 -0
- package/esm/object/omit.d.ts +1 -8
- package/esm/object/omit.d.ts.map +1 -1
- package/esm/object/omit.js.map +1 -1
- package/esm/object/optional_key.d.ts +2 -2
- package/esm/object/optional_key.d.ts.map +1 -1
- package/esm/object/optional_key.js.map +1 -1
- package/esm/object/pick.d.ts +1 -1
- package/esm/object/pick.d.ts.map +1 -1
- package/esm/object/pick.js.map +1 -1
- package/esm/object/properties.d.ts.map +1 -1
- package/esm/object/properties.js.map +1 -1
- package/esm/object/record.d.ts.map +1 -1
- package/esm/object/record.js.map +1 -1
- package/esm/object/recursive_partial.d.ts +1 -1
- package/esm/object/recursive_partial.d.ts.map +1 -1
- package/esm/object/recursive_partial.js.map +1 -1
- package/esm/object/reduceKey.d.ts.map +1 -1
- package/esm/object/reduceKey.js.map +1 -1
- package/esm/object/replaceProperty.d.ts +1 -1
- package/esm/object/replaceProperty.d.ts.map +1 -1
- package/esm/object/replaceProperty.js.map +1 -1
- package/esm/object/someKey.d.ts.map +1 -1
- package/esm/object/someKey.js.map +1 -1
- package/esm/object/split.d.ts +2 -3
- package/esm/object/split.d.ts.map +1 -1
- package/esm/object/split.js.map +1 -1
- package/esm/object/typeOverrideIncompatible.d.ts.map +1 -1
- package/esm/object/typeOverrideIncompatible.js +4 -6
- package/esm/object/typeOverrideIncompatible.js.map +1 -1
- package/esm/predicates/CanAssign.d.ts +12 -4
- package/esm/predicates/CanAssign.d.ts.map +1 -1
- package/esm/predicates/CanAssign.js.map +1 -1
- package/esm/predicates/Extends.d.ts +3 -0
- package/esm/predicates/Extends.d.ts.map +1 -1
- package/esm/predicates/Extends.js.map +1 -1
- package/esm/predicates/If.d.ts.map +1 -1
- package/esm/predicates/If.js.map +1 -1
- package/esm/predicates/IsEmptyObject.d.ts.map +1 -1
- package/esm/predicates/IsEmptyObject.js.map +1 -1
- package/esm/predicates/assignable.d.ts +89 -0
- package/esm/predicates/assignable.d.ts.map +1 -0
- package/esm/predicates/assignable.js +2 -0
- package/esm/predicates/assignable.js.map +1 -0
- package/esm/predicates/index.d.ts.map +1 -1
- package/esm/predicates/index.js.map +1 -1
- package/esm/predicates/literal.d.ts +1 -1
- package/esm/predicates/literal.d.ts.map +1 -1
- package/esm/predicates/literal.js.map +1 -1
- package/esm/predicates/logical.d.ts.map +1 -1
- package/esm/predicates/logical.js.map +1 -1
- package/esm/predicates/not_assignable.d.ts +89 -0
- package/esm/predicates/not_assignable.d.ts.map +1 -0
- package/esm/predicates/not_assignable.js +2 -0
- package/esm/predicates/not_assignable.js.map +1 -0
- package/esm/primitive.d.ts.map +1 -1
- package/esm/primitive.js.map +1 -1
- package/esm/promise/MaybePromise.d.ts.map +1 -1
- package/esm/promise/MaybePromise.js.map +1 -1
- package/esm/promise/PromiseValue.d.ts.map +1 -1
- package/esm/promise/PromiseValue.js.map +1 -1
- package/esm/promise/PromiseValueMerge.d.ts.map +1 -1
- package/esm/promise/PromiseValueMerge.js.map +1 -1
- package/esm/promise/index.d.ts +1 -1
- package/esm/promise/index.d.ts.map +1 -1
- package/esm/promise/index.js.map +1 -1
- package/esm/promise/isPromise.d.ts.map +1 -1
- package/esm/promise/isPromise.js.map +1 -1
- package/esm/promise/mapSeries.d.ts.map +1 -1
- package/esm/promise/mapSeries.js.map +1 -1
- package/esm/string/$extract_manipulated_string.d.ts +18 -0
- package/esm/string/$extract_manipulated_string.d.ts.map +1 -0
- package/esm/string/$extract_manipulated_string.js +2 -0
- package/esm/string/$extract_manipulated_string.js.map +1 -0
- package/esm/string/_string_type.d.ts +5 -0
- package/esm/string/_string_type.d.ts.map +1 -0
- package/esm/string/_string_type.js +2 -0
- package/esm/string/_string_type.js.map +1 -0
- package/esm/string/is_not_string.d.ts +84 -0
- package/esm/string/is_not_string.d.ts.map +1 -0
- package/esm/string/is_not_string.js +2 -0
- package/esm/string/is_not_string.js.map +1 -0
- package/esm/string/is_not_string_literal.d.ts +104 -0
- package/esm/string/is_not_string_literal.d.ts.map +1 -0
- package/esm/string/is_not_string_literal.js +2 -0
- package/esm/string/is_not_string_literal.js.map +1 -0
- package/esm/string/is_not_template_literal.d.ts +73 -0
- package/esm/string/is_not_template_literal.d.ts.map +1 -0
- package/esm/string/is_not_template_literal.js +2 -0
- package/esm/string/is_not_template_literal.js.map +1 -0
- package/esm/string/is_string.d.ts +83 -0
- package/esm/string/is_string.d.ts.map +1 -0
- package/esm/string/is_string.js +2 -0
- package/esm/string/is_string.js.map +1 -0
- package/esm/string/is_string_literal.d.ts +104 -0
- package/esm/string/is_string_literal.d.ts.map +1 -0
- package/esm/string/is_string_literal.js +2 -0
- package/esm/string/is_string_literal.js.map +1 -0
- package/esm/string/is_template_literal.d.ts +75 -0
- package/esm/string/is_template_literal.d.ts.map +1 -0
- package/esm/string/is_template_literal.js +2 -0
- package/esm/string/is_template_literal.js.map +1 -0
- package/esm/string/string.d.ts +1 -1
- package/esm/string/string.d.ts.map +1 -1
- package/esm/string/string.js.map +1 -1
- package/esm/string/string_plus.d.ts.map +1 -1
- package/esm/string/string_plus.js.map +1 -1
- package/esm/symbol/is_not_symbol.d.ts +71 -0
- package/esm/symbol/is_not_symbol.d.ts.map +1 -0
- package/esm/symbol/is_not_symbol.js +2 -0
- package/esm/symbol/is_not_symbol.js.map +1 -0
- package/esm/symbol/is_symbol.d.ts +73 -0
- package/esm/symbol/is_symbol.d.ts.map +1 -0
- package/esm/symbol/is_symbol.js +2 -0
- package/esm/symbol/is_symbol.js.map +1 -0
- package/esm/testing/stub.d.ts.map +1 -1
- package/esm/testing/stub.js.map +1 -1
- package/esm/testing/test_type.d.ts +84 -44
- package/esm/testing/test_type.d.ts.map +1 -1
- package/esm/testing/test_type.js.map +1 -1
- package/esm/tuple/common_prop_keys.d.ts +1 -1
- package/esm/tuple/common_prop_keys.d.ts.map +1 -1
- package/esm/tuple/common_prop_keys.js.map +1 -1
- package/esm/tuple/create_tuple.d.ts +2 -2
- package/esm/tuple/create_tuple.d.ts.map +1 -1
- package/esm/tuple/create_tuple.js.map +1 -1
- package/esm/tuple/drop.d.ts +8 -8
- package/esm/tuple/drop.d.ts.map +1 -1
- package/esm/tuple/drop.js.map +1 -1
- package/esm/tuple/is_not_tuple.d.ts +78 -0
- package/esm/tuple/is_not_tuple.d.ts.map +1 -0
- package/esm/tuple/is_not_tuple.js +2 -0
- package/esm/tuple/is_not_tuple.js.map +1 -0
- package/esm/tuple/is_tuple.d.ts +76 -0
- package/esm/tuple/is_tuple.d.ts.map +1 -0
- package/esm/tuple/is_tuple.js +2 -0
- package/esm/tuple/is_tuple.js.map +1 -0
- package/esm/tuple/tail.d.ts +1 -1
- package/esm/tuple/tail.d.ts.map +1 -1
- package/esm/tuple/tail.js.map +1 -1
- package/esm/tuple/tuple_plus.common_prop_keys.d.ts +9 -5
- package/esm/tuple/tuple_plus.common_prop_keys.d.ts.map +1 -1
- package/esm/tuple/tuple_plus.common_prop_keys.js.map +1 -1
- package/esm/tuple/tuple_plus.d.ts.map +1 -1
- package/esm/tuple/tuple_plus.drop_match.d.ts.map +1 -1
- package/esm/tuple/tuple_plus.drop_match.js.map +1 -1
- package/esm/tuple/tuple_plus.filter.d.ts +1 -1
- package/esm/tuple/tuple_plus.filter.d.ts.map +1 -1
- package/esm/tuple/tuple_plus.filter.js.map +1 -1
- package/esm/tuple/tuple_plus.find.d.ts +21 -18
- package/esm/tuple/tuple_plus.find.d.ts.map +1 -1
- package/esm/tuple/tuple_plus.find.js.map +1 -1
- package/esm/tuple/tuple_plus.js.map +1 -1
- package/esm/tuple/tuple_plus.pad_start.d.ts +3 -3
- package/esm/tuple/tuple_plus.pad_start.d.ts.map +1 -1
- package/esm/tuple/tuple_plus.pad_start.js.map +1 -1
- package/esm/type/failed.d.ts.map +1 -1
- package/esm/type/failed.js.map +1 -1
- package/esm/type/no_infer.d.ts +4 -3
- package/esm/type/no_infer.d.ts.map +1 -1
- package/esm/type/no_infer.js.map +1 -1
- package/esm/type-guard/is_type.d.ts +1 -1
- package/esm/type-guard/is_type.d.ts.map +1 -1
- package/esm/type-guard/is_type.js +3 -7
- package/esm/type-guard/is_type.js.map +1 -1
- package/esm/type_plus/$equality.d.ts +12 -0
- package/esm/type_plus/$equality.d.ts.map +1 -0
- package/esm/type_plus/$equality.js +2 -0
- package/esm/type_plus/$equality.js.map +1 -0
- package/esm/type_plus/$error.d.ts +8 -0
- package/esm/type_plus/$error.d.ts.map +1 -0
- package/esm/type_plus/$error.js +2 -0
- package/esm/type_plus/$error.js.map +1 -0
- package/esm/type_plus/$infer_error.d.ts +21 -0
- package/esm/type_plus/$infer_error.d.ts.map +1 -0
- package/esm/type_plus/$infer_error.js +2 -0
- package/esm/type_plus/$infer_error.js.map +1 -0
- package/esm/type_plus/$merge_options.d.ts +11 -0
- package/esm/type_plus/$merge_options.d.ts.map +1 -0
- package/esm/type_plus/$merge_options.js +2 -0
- package/esm/type_plus/$merge_options.js.map +1 -0
- package/esm/type_plus/$resolve_options.d.ts +11 -0
- package/esm/type_plus/$resolve_options.d.ts.map +1 -0
- package/esm/type_plus/$resolve_options.js +2 -0
- package/esm/type_plus/$resolve_options.js.map +1 -0
- package/esm/type_plus/$special_type.d.ts +25 -0
- package/esm/type_plus/$special_type.d.ts.map +1 -0
- package/esm/type_plus/$special_type.js +2 -0
- package/esm/type_plus/$special_type.js.map +1 -0
- package/esm/type_plus/$type.d.ts +11 -0
- package/esm/type_plus/$type.d.ts.map +1 -0
- package/esm/type_plus/$type.js +2 -0
- package/esm/type_plus/$type.js.map +1 -0
- package/esm/type_plus/branch/$branch.d.ts +29 -0
- package/esm/type_plus/branch/$branch.d.ts.map +1 -0
- package/esm/type_plus/branch/$branch.js +2 -0
- package/esm/type_plus/branch/$branch.js.map +1 -0
- package/esm/type_plus/branch/$distributive.d.ts +19 -0
- package/esm/type_plus/branch/$distributive.d.ts.map +1 -0
- package/esm/type_plus/branch/$distributive.js +2 -0
- package/esm/type_plus/branch/$distributive.js.map +1 -0
- package/esm/type_plus/branch/$exact.d.ts +27 -0
- package/esm/type_plus/branch/$exact.d.ts.map +1 -0
- package/esm/type_plus/branch/$exact.js +2 -0
- package/esm/type_plus/branch/$exact.js.map +1 -0
- package/esm/type_plus/branch/$input_options.d.ts +10 -0
- package/esm/type_plus/branch/$input_options.d.ts.map +1 -0
- package/esm/type_plus/branch/$input_options.js +2 -0
- package/esm/type_plus/branch/$input_options.js.map +1 -0
- package/esm/type_plus/branch/$is_distributive.d.ts +6 -0
- package/esm/type_plus/branch/$is_distributive.d.ts.map +1 -0
- package/esm/type_plus/branch/$is_distributive.js +2 -0
- package/esm/type_plus/branch/$is_distributive.js.map +1 -0
- package/esm/type_plus/branch/$override.d.ts +21 -0
- package/esm/type_plus/branch/$override.d.ts.map +1 -0
- package/esm/type_plus/branch/$override.js +2 -0
- package/esm/type_plus/branch/$override.js.map +1 -0
- package/esm/type_plus/branch/$resolve_branch.d.ts +30 -0
- package/esm/type_plus/branch/$resolve_branch.d.ts.map +1 -0
- package/esm/type_plus/branch/$resolve_branch.js +2 -0
- package/esm/type_plus/branch/$resolve_branch.js.map +1 -0
- package/esm/type_plus/branch/$select.d.ts +79 -0
- package/esm/type_plus/branch/$select.d.ts.map +1 -0
- package/esm/type_plus/branch/$select.js +2 -0
- package/esm/type_plus/branch/$select.js.map +1 -0
- package/esm/type_plus/branch/$select_invert.d.ts +77 -0
- package/esm/type_plus/branch/$select_invert.d.ts.map +1 -0
- package/esm/type_plus/branch/$select_invert.js +2 -0
- package/esm/type_plus/branch/$select_invert.js.map +1 -0
- package/esm/type_plus/branch/$select_invert_strict.d.ts +78 -0
- package/esm/type_plus/branch/$select_invert_strict.d.ts.map +1 -0
- package/esm/type_plus/branch/$select_invert_strict.js +2 -0
- package/esm/type_plus/branch/$select_invert_strict.js.map +1 -0
- package/esm/type_plus/branch/$select_strict.d.ts +79 -0
- package/esm/type_plus/branch/$select_strict.d.ts.map +1 -0
- package/esm/type_plus/branch/$select_strict.js +2 -0
- package/esm/type_plus/branch/$select_strict.js.map +1 -0
- package/esm/type_plus/branch/$selection.d.ts +127 -0
- package/esm/type_plus/branch/$selection.d.ts.map +1 -0
- package/esm/type_plus/branch/$selection.js +2 -0
- package/esm/type_plus/branch/$selection.js.map +1 -0
- package/esm/type_plus/branch/$selection_options.d.ts +37 -0
- package/esm/type_plus/branch/$selection_options.d.ts.map +1 -0
- package/esm/type_plus/branch/$selection_options.js +2 -0
- package/esm/type_plus/branch/$selection_options.js.map +1 -0
- package/esm/undefined/has_undefined.d.ts +41 -0
- package/esm/undefined/has_undefined.d.ts.map +1 -0
- package/esm/undefined/has_undefined.js +2 -0
- package/esm/undefined/has_undefined.js.map +1 -0
- package/esm/undefined/is_not_undefined.d.ts +72 -0
- package/esm/undefined/is_not_undefined.d.ts.map +1 -0
- package/esm/undefined/is_not_undefined.js +2 -0
- package/esm/undefined/is_not_undefined.js.map +1 -0
- package/esm/undefined/is_undefined.d.ts +75 -0
- package/esm/undefined/is_undefined.d.ts.map +1 -0
- package/esm/undefined/is_undefined.js +2 -0
- package/esm/undefined/is_undefined.js.map +1 -0
- package/esm/union/union.d.ts +1 -1
- package/esm/union/union.d.ts.map +1 -1
- package/esm/union/union.js.map +1 -1
- package/esm/union/union_to_intersection.d.ts.map +1 -1
- package/esm/union/union_to_intersection.js.map +1 -1
- package/esm/union_keys.d.ts.map +1 -1
- package/esm/union_keys.js.map +1 -1
- package/esm/unknown/is_not_unknown.d.ts +53 -0
- package/esm/unknown/is_not_unknown.d.ts.map +1 -0
- package/esm/unknown/is_not_unknown.js +2 -0
- package/esm/unknown/is_not_unknown.js.map +1 -0
- package/esm/unknown/is_unknown.d.ts +53 -0
- package/esm/unknown/is_unknown.d.ts.map +1 -0
- package/esm/unknown/is_unknown.js +2 -0
- package/esm/unknown/is_unknown.js.map +1 -0
- package/esm/unknown/not_unknown_or.d.ts +30 -0
- package/esm/unknown/not_unknown_or.d.ts.map +1 -0
- package/esm/unknown/not_unknown_or.js +2 -0
- package/esm/unknown/not_unknown_or.js.map +1 -0
- package/esm/unknown/unknown.d.ts +55 -0
- package/esm/unknown/unknown.d.ts.map +1 -0
- package/esm/unknown/unknown.js +2 -0
- package/esm/unknown/unknown.js.map +1 -0
- package/esm/unpartial.d.ts.map +1 -1
- package/esm/unpartial.js.map +1 -1
- package/esm/utils/Widen.d.ts.map +1 -1
- package/esm/utils/Widen.js.map +1 -1
- package/esm/utils/as.d.ts.map +1 -1
- package/esm/utils/as.js.map +1 -1
- package/esm/utils/index.d.ts +0 -2
- package/esm/utils/index.d.ts.map +1 -1
- package/esm/utils/index.js.map +1 -1
- package/esm/utils/inspect.d.ts.map +1 -1
- package/esm/utils/inspect.js.map +1 -1
- package/esm/utils/options.d.ts +14 -9
- package/esm/utils/options.d.ts.map +1 -1
- package/esm/utils/options.js.map +1 -1
- package/esm/void/is_not_void.d.ts +78 -0
- package/esm/void/is_not_void.d.ts.map +1 -0
- package/esm/void/is_not_void.js +2 -0
- package/esm/void/is_not_void.js.map +1 -0
- package/esm/void/is_void.d.ts +79 -0
- package/esm/void/is_void.d.ts.map +1 -0
- package/esm/void/is_void.js +2 -0
- package/esm/void/is_void.js.map +1 -0
- package/package.json +31 -33
- package/readme.md +1376 -0
- package/src/any/any.ts +46 -0
- package/src/any/is_any.ts +59 -0
- package/src/any/is_not_any.ts +59 -0
- package/src/any/readme.md +104 -0
- package/src/array/array.at.ts +40 -0
- package/src/array/array.entries.ts +28 -0
- package/src/array/array.find_last.ts +31 -0
- package/src/array/array.reverse.ts +25 -0
- package/src/array/array.some.ts +67 -0
- package/src/array/array_plus.common_prop_keys.ts +38 -0
- package/src/array/array_plus.concat.ts +15 -0
- package/src/array/array_plus.drop_match.ts +16 -0
- package/src/array/array_plus.element_match.ts +61 -0
- package/src/array/array_plus.filter.ts +52 -0
- package/src/array/array_plus.find.ts +71 -0
- package/src/array/array_plus.index_at.ts +169 -0
- package/src/array/array_plus.is_index_out_of_bound.ts +24 -0
- package/src/array/array_plus.is_readonly.ts +50 -0
- package/src/array/array_plus.pad_start.ts +13 -0
- package/src/array/array_plus.split_at.ts +79 -0
- package/src/array/array_plus.ts +16 -0
- package/src/array/filter.ts +32 -0
- package/src/array/find_first.ts +73 -0
- package/src/array/head.ts +45 -0
- package/src/array/intersect_of_props.ts +21 -0
- package/src/array/is_array.ts +116 -0
- package/src/array/is_not_array.ts +114 -0
- package/src/array/last.ts +42 -0
- package/src/array/loose_array_type.ts +71 -0
- package/src/array/pad_start.ts +39 -0
- package/src/array/readme.md +567 -0
- package/src/array/union_of_props.ts +17 -0
- package/src/array/union_of_values.ts +14 -0
- package/src/assertion/assert_type.ts +117 -0
- package/src/bigint/is_bigint.ts +114 -0
- package/src/bigint/is_bigint_literal.ts +100 -0
- package/src/bigint/is_not_bigint.ts +110 -0
- package/src/bigint/is_not_bigint_literal.ts +101 -0
- package/src/bigint/readme.md +109 -0
- package/src/boolean/is_boolean.ts +126 -0
- package/src/boolean/is_false.ts +85 -0
- package/src/boolean/is_not_boolean.ts +109 -0
- package/src/boolean/is_not_false.ts +86 -0
- package/src/boolean/is_not_true.ts +86 -0
- package/src/boolean/is_true.ts +85 -0
- package/src/boolean/readme.md +430 -0
- package/src/class/AnyConstructor.ts +1 -0
- package/src/class/isConstructor.ts +34 -0
- package/src/equal/equal.ts +135 -0
- package/src/equal/identity_equal.ts +9 -0
- package/src/function/is_function.ts +62 -0
- package/src/function/is_not_function.ts +75 -0
- package/src/function/is_not_strict_function.ts +40 -0
- package/src/function/is_strict_function.ts +43 -0
- package/src/functional/Maybe.ts +22 -0
- package/src/functional/compose.ts +18 -0
- package/src/functional/context.ts +66 -0
- package/src/index.ts +139 -0
- package/src/math/abs.ts +23 -0
- package/src/math/greater_than.ts +12 -0
- package/src/math/index.ts +7 -0
- package/src/math/max.ts +13 -0
- package/src/math/numeric_struct.ts +656 -0
- package/src/mix_types/box.ts +74 -0
- package/src/mix_types/exclude.ts +18 -0
- package/src/mix_types/is_any_or_never.ts +31 -0
- package/src/mix_types/merge.ts +61 -0
- package/src/mix_types/readme.md +87 -0
- package/src/never/is_never.ts +62 -0
- package/src/never/is_not_never.ts +62 -0
- package/src/never/never.ts +78 -0
- package/src/never/readme.md +148 -0
- package/src/nominal/brand.ts +41 -0
- package/src/nominal/flavor.ts +51 -0
- package/src/nominal/nominal_match.ts +21 -0
- package/src/null/is_not_null.ts +79 -0
- package/src/null/is_null.ts +83 -0
- package/src/null/readme.md +107 -0
- package/src/number/is_not_number.ts +99 -0
- package/src/number/is_not_number_literal.ts +101 -0
- package/src/number/is_number.ts +103 -0
- package/src/number/is_number_literal.ts +100 -0
- package/src/number/number_plus.ts +13 -0
- package/src/number/readme.md +225 -0
- package/src/numeric/is_integer.ts +48 -0
- package/src/numeric/is_negative.ts +51 -0
- package/src/numeric/is_not_integer.ts +49 -0
- package/src/numeric/is_not_negative.ts +49 -0
- package/src/numeric/is_not_numeric.ts +21 -0
- package/src/numeric/is_not_positive.ts +50 -0
- package/src/numeric/is_numeric.ts +20 -0
- package/src/numeric/is_positive.ts +51 -0
- package/src/numeric/numeric_plus.ts +10 -0
- package/src/numeric/numeric_type.ts +10 -0
- package/src/object/ANotB.ts +12 -0
- package/src/object/IsDisjoint.ts +12 -0
- package/src/object/KeysWithDiffType.ts +9 -0
- package/src/object/KnownKeys.ts +17 -0
- package/src/object/RecursiveIntersect.ts +25 -0
- package/src/object/RecursiveRequired.ts +9 -0
- package/src/object/Required.ts +7 -0
- package/src/object/RequiredKeys.ts +8 -0
- package/src/object/facade.ts +214 -0
- package/src/object/forEachKey.ts +9 -0
- package/src/object/hasKey.ts +7 -0
- package/src/object/index.ts +38 -0
- package/src/object/is_not_object.ts +132 -0
- package/src/object/is_object.ts +119 -0
- package/src/object/left_join.ts +10 -0
- package/src/object/mapProperties.ts +22 -0
- package/src/object/merge.ts +117 -0
- package/src/object/object_plus.ts +1 -0
- package/src/object/omit.ts +220 -0
- package/src/object/optional_key.ts +38 -0
- package/src/object/pick.ts +220 -0
- package/src/object/readme.md +79 -0
- package/src/object/record.ts +23 -0
- package/src/object/recursive_partial.ts +39 -0
- package/src/object/replaceProperty.ts +11 -0
- package/src/object/split.ts +202 -0
- package/src/object/typeOverrideIncompatible.ts +8 -0
- package/src/predicates/CanAssign.ts +61 -0
- package/src/predicates/Extends.ts +7 -0
- package/src/predicates/assignable.ts +102 -0
- package/src/predicates/index.ts +6 -0
- package/src/predicates/literal.ts +35 -0
- package/src/predicates/not_assignable.ts +100 -0
- package/src/promise/index.ts +5 -0
- package/src/string/$extract_manipulated_string.ts +45 -0
- package/src/string/_string_type.ts +11 -0
- package/src/string/is_not_string.ts +100 -0
- package/src/string/is_not_string_literal.ts +132 -0
- package/src/string/is_not_template_literal.ts +90 -0
- package/src/string/is_string.ts +101 -0
- package/src/string/is_string_literal.ts +132 -0
- package/src/string/is_template_literal.ts +91 -0
- package/src/string/string.ts +36 -0
- package/src/string/string_plus.ts +34 -0
- package/src/symbol/is_not_symbol.ts +78 -0
- package/src/symbol/is_symbol.ts +80 -0
- package/src/testing/stub.ts +81 -0
- package/src/testing/test_type.ts +313 -0
- package/src/tuple/common_prop_keys.ts +41 -0
- package/src/tuple/create_tuple.ts +42 -0
- package/src/tuple/drop.ts +125 -0
- package/src/tuple/is_not_tuple.ts +101 -0
- package/src/tuple/is_tuple.ts +99 -0
- package/src/tuple/readme.md +282 -0
- package/src/tuple/tail.ts +10 -0
- package/src/tuple/tuple_plus.common_prop_keys.ts +50 -0
- package/src/tuple/tuple_plus.filter.ts +29 -0
- package/src/tuple/tuple_plus.find.ts +89 -0
- package/src/tuple/tuple_plus.pad_start.ts +61 -0
- package/src/type/no_infer.ts +28 -0
- package/src/type-guard/is_type.ts +48 -0
- package/src/type_plus/$equality.ts +14 -0
- package/src/type_plus/$error.ts +8 -0
- package/src/type_plus/$infer_error.ts +21 -0
- package/src/type_plus/$merge_options.ts +9 -0
- package/src/type_plus/$resolve_options.ts +16 -0
- package/src/type_plus/$special_type.ts +24 -0
- package/src/type_plus/$type.ts +10 -0
- package/src/type_plus/branch/$branch.ts +27 -0
- package/src/type_plus/branch/$distributive.ts +19 -0
- package/src/type_plus/branch/$exact.ts +34 -0
- package/src/type_plus/branch/$input_options.ts +9 -0
- package/src/type_plus/branch/$is_distributive.ts +12 -0
- package/src/type_plus/branch/$override.ts +22 -0
- package/src/type_plus/branch/$resolve_branch.ts +81 -0
- package/src/type_plus/branch/$select.ts +90 -0
- package/src/type_plus/branch/$select_invert.ts +88 -0
- package/src/type_plus/branch/$select_invert_strict.ts +88 -0
- package/src/type_plus/branch/$select_strict.ts +90 -0
- package/src/type_plus/branch/$selection.ts +135 -0
- package/src/type_plus/branch/$selection_options.ts +36 -0
- package/src/type_plus/readme.md +25 -0
- package/src/undefined/has_undefined.ts +44 -0
- package/src/undefined/is_not_undefined.ts +80 -0
- package/src/undefined/is_undefined.ts +82 -0
- package/src/undefined/readme.md +140 -0
- package/src/union/readme.md +81 -0
- package/src/union/union.ts +37 -0
- package/src/unknown/is_not_unknown.ts +57 -0
- package/src/unknown/is_unknown.ts +57 -0
- package/src/unknown/not_unknown_or.ts +29 -0
- package/src/unknown/readme.md +108 -0
- package/src/unknown/unknown.ts +58 -0
- package/src/utils/index.ts +61 -0
- package/src/utils/options.ts +15 -0
- package/src/void/is_not_void.ts +90 -0
- package/src/void/is_void.ts +91 -0
- package/src/void/readme.md +108 -0
- package/README.md +0 -1356
- package/cjs/any/any_type.d.ts +0 -63
- package/cjs/any/any_type.d.ts.map +0 -1
- package/cjs/any/any_type.js +0 -3
- package/cjs/any/any_type.js.map +0 -1
- package/cjs/array/array.at.d.ts +0 -20
- package/cjs/array/array.at.d.ts.map +0 -1
- package/cjs/array/array.at.js +0 -3
- package/cjs/array/array.at.js.map +0 -1
- package/cjs/array/array.entries.d.ts +0 -18
- package/cjs/array/array.entries.d.ts.map +0 -1
- package/cjs/array/array.entries.js +0 -3
- package/cjs/array/array.entries.js.map +0 -1
- package/cjs/array/array.find_last.d.ts +0 -19
- package/cjs/array/array.find_last.d.ts.map +0 -1
- package/cjs/array/array.find_last.js +0 -3
- package/cjs/array/array.find_last.js.map +0 -1
- package/cjs/array/array.reverse.d.ts +0 -2
- package/cjs/array/array.reverse.d.ts.map +0 -1
- package/cjs/array/array.reverse.js +0 -3
- package/cjs/array/array.reverse.js.map +0 -1
- package/cjs/array/array.some.d.ts +0 -33
- package/cjs/array/array.some.d.ts.map +0 -1
- package/cjs/array/array.some.js +0 -3
- package/cjs/array/array.some.js.map +0 -1
- package/cjs/array/array_index.d.ts +0 -37
- package/cjs/array/array_index.d.ts.map +0 -1
- package/cjs/array/array_index.js +0 -3
- package/cjs/array/array_index.js.map +0 -1
- package/cjs/array/array_plus.common_prop_keys.d.ts +0 -27
- package/cjs/array/array_plus.common_prop_keys.d.ts.map +0 -1
- package/cjs/array/array_plus.common_prop_keys.js +0 -3
- package/cjs/array/array_plus.common_prop_keys.js.map +0 -1
- package/cjs/array/array_plus.concat.d.ts +0 -16
- package/cjs/array/array_plus.concat.d.ts.map +0 -1
- package/cjs/array/array_plus.concat.js +0 -3
- package/cjs/array/array_plus.concat.js.map +0 -1
- package/cjs/array/array_plus.d.ts +0 -15
- package/cjs/array/array_plus.d.ts.map +0 -1
- package/cjs/array/array_plus.drop_match.d.ts +0 -4
- package/cjs/array/array_plus.drop_match.d.ts.map +0 -1
- package/cjs/array/array_plus.drop_match.js +0 -3
- package/cjs/array/array_plus.drop_match.js.map +0 -1
- package/cjs/array/array_plus.element_match.d.ts +0 -44
- package/cjs/array/array_plus.element_match.d.ts.map +0 -1
- package/cjs/array/array_plus.element_match.js +0 -3
- package/cjs/array/array_plus.element_match.js.map +0 -1
- package/cjs/array/array_plus.filter.d.ts +0 -2
- package/cjs/array/array_plus.filter.d.ts.map +0 -1
- package/cjs/array/array_plus.filter.js +0 -3
- package/cjs/array/array_plus.filter.js.map +0 -1
- package/cjs/array/array_plus.find.d.ts +0 -57
- package/cjs/array/array_plus.find.d.ts.map +0 -1
- package/cjs/array/array_plus.find.js +0 -3
- package/cjs/array/array_plus.find.js.map +0 -1
- package/cjs/array/array_plus.js +0 -3
- package/cjs/array/array_plus.js.map +0 -1
- package/cjs/array/array_plus.pad_start.d.ts +0 -5
- package/cjs/array/array_plus.pad_start.d.ts.map +0 -1
- package/cjs/array/array_plus.pad_start.js +0 -3
- package/cjs/array/array_plus.pad_start.js.map +0 -1
- package/cjs/array/array_plus.split_at.d.ts +0 -40
- package/cjs/array/array_plus.split_at.d.ts.map +0 -1
- package/cjs/array/array_plus.split_at.js +0 -3
- package/cjs/array/array_plus.split_at.js.map +0 -1
- package/cjs/array/array_type.d.ts +0 -66
- package/cjs/array/array_type.d.ts.map +0 -1
- package/cjs/array/array_type.js +0 -3
- package/cjs/array/array_type.js.map +0 -1
- package/cjs/array/filter.d.ts +0 -29
- package/cjs/array/filter.d.ts.map +0 -1
- package/cjs/array/filter.js +0 -3
- package/cjs/array/filter.js.map +0 -1
- package/cjs/array/find_first.d.ts +0 -62
- package/cjs/array/find_first.d.ts.map +0 -1
- package/cjs/array/find_first.js +0 -3
- package/cjs/array/find_first.js.map +0 -1
- package/cjs/array/head.d.ts +0 -31
- package/cjs/array/head.d.ts.map +0 -1
- package/cjs/array/head.js +0 -3
- package/cjs/array/head.js.map +0 -1
- package/cjs/array/intersect_of_props.d.ts +0 -14
- package/cjs/array/intersect_of_props.d.ts.map +0 -1
- package/cjs/array/intersect_of_props.js +0 -3
- package/cjs/array/intersect_of_props.js.map +0 -1
- package/cjs/array/last.d.ts +0 -30
- package/cjs/array/last.d.ts.map +0 -1
- package/cjs/array/last.js +0 -3
- package/cjs/array/last.js.map +0 -1
- package/cjs/array/literal_array.d.ts +0 -8
- package/cjs/array/literal_array.d.ts.map +0 -1
- package/cjs/array/literal_array.js +0 -13
- package/cjs/array/literal_array.js.map +0 -1
- package/cjs/array/pad_start.d.ts +0 -32
- package/cjs/array/pad_start.d.ts.map +0 -1
- package/cjs/array/pad_start.js +0 -3
- package/cjs/array/pad_start.js.map +0 -1
- package/cjs/array/reduce_while.d.ts +0 -8
- package/cjs/array/reduce_while.d.ts.map +0 -1
- package/cjs/array/reduce_while.js +0 -21
- package/cjs/array/reduce_while.js.map +0 -1
- package/cjs/array/reverse.d.ts +0 -7
- package/cjs/array/reverse.d.ts.map +0 -1
- package/cjs/array/reverse.js +0 -3
- package/cjs/array/reverse.js.map +0 -1
- package/cjs/array/union_of_props.d.ts +0 -12
- package/cjs/array/union_of_props.d.ts.map +0 -1
- package/cjs/array/union_of_props.js +0 -3
- package/cjs/array/union_of_props.js.map +0 -1
- package/cjs/array/union_of_values.d.ts +0 -10
- package/cjs/array/union_of_values.d.ts.map +0 -1
- package/cjs/array/union_of_values.js +0 -3
- package/cjs/array/union_of_values.js.map +0 -1
- package/cjs/assertion/assert_type.d.ts +0 -40
- package/cjs/assertion/assert_type.d.ts.map +0 -1
- package/cjs/assertion/assert_type.js +0 -113
- package/cjs/assertion/assert_type.js.map +0 -1
- package/cjs/bigint/bigint_type.d.ts +0 -54
- package/cjs/bigint/bigint_type.d.ts.map +0 -1
- package/cjs/bigint/bigint_type.js +0 -3
- package/cjs/bigint/bigint_type.js.map +0 -1
- package/cjs/bigint/cast.d.ts +0 -10
- package/cjs/bigint/cast.d.ts.map +0 -1
- package/cjs/bigint/cast.js +0 -3
- package/cjs/bigint/cast.js.map +0 -1
- package/cjs/bigint/strict_bigint_type.d.ts +0 -56
- package/cjs/bigint/strict_bigint_type.d.ts.map +0 -1
- package/cjs/bigint/strict_bigint_type.js +0 -3
- package/cjs/bigint/strict_bigint_type.js.map +0 -1
- package/cjs/binary/Bit.d.ts +0 -6
- package/cjs/binary/Bit.d.ts.map +0 -1
- package/cjs/binary/Bit.js +0 -3
- package/cjs/binary/Bit.js.map +0 -1
- package/cjs/binary/_binary.d.ts +0 -2
- package/cjs/binary/_binary.d.ts.map +0 -1
- package/cjs/binary/_binary.js +0 -3
- package/cjs/binary/_binary.js.map +0 -1
- package/cjs/binary/index.d.ts +0 -3
- package/cjs/binary/index.d.ts.map +0 -1
- package/cjs/binary/index.js +0 -6
- package/cjs/binary/index.js.map +0 -1
- package/cjs/boolean/boolean_type.d.ts +0 -56
- package/cjs/boolean/boolean_type.d.ts.map +0 -1
- package/cjs/boolean/boolean_type.js +0 -3
- package/cjs/boolean/boolean_type.js.map +0 -1
- package/cjs/boolean/false_type.d.ts +0 -49
- package/cjs/boolean/false_type.d.ts.map +0 -1
- package/cjs/boolean/false_type.js +0 -3
- package/cjs/boolean/false_type.js.map +0 -1
- package/cjs/boolean/strict_boolean_type.d.ts +0 -53
- package/cjs/boolean/strict_boolean_type.d.ts.map +0 -1
- package/cjs/boolean/strict_boolean_type.js +0 -3
- package/cjs/boolean/strict_boolean_type.js.map +0 -1
- package/cjs/boolean/true_type.d.ts +0 -49
- package/cjs/boolean/true_type.d.ts.map +0 -1
- package/cjs/boolean/true_type.js +0 -3
- package/cjs/boolean/true_type.js.map +0 -1
- package/cjs/class/AnyConstructor.d.ts +0 -2
- package/cjs/class/AnyConstructor.d.ts.map +0 -1
- package/cjs/class/AnyConstructor.js +0 -3
- package/cjs/class/AnyConstructor.js.map +0 -1
- package/cjs/class/index.d.ts +0 -3
- package/cjs/class/index.d.ts.map +0 -1
- package/cjs/class/index.js +0 -18
- package/cjs/class/index.js.map +0 -1
- package/cjs/class/isConstructor.d.ts +0 -18
- package/cjs/class/isConstructor.d.ts.map +0 -1
- package/cjs/class/isConstructor.js +0 -35
- package/cjs/class/isConstructor.js.map +0 -1
- package/cjs/composable_types.d.ts +0 -9
- package/cjs/composable_types.d.ts.map +0 -1
- package/cjs/composable_types.js +0 -3
- package/cjs/composable_types.js.map +0 -1
- package/cjs/equal/equal.d.ts +0 -99
- package/cjs/equal/equal.d.ts.map +0 -1
- package/cjs/equal/equal.js +0 -3
- package/cjs/equal/equal.js.map +0 -1
- package/cjs/function/any_function.d.ts +0 -2
- package/cjs/function/any_function.d.ts.map +0 -1
- package/cjs/function/any_function.js +0 -3
- package/cjs/function/any_function.js.map +0 -1
- package/cjs/function/extract_function.d.ts +0 -24
- package/cjs/function/extract_function.d.ts.map +0 -1
- package/cjs/function/extract_function.js +0 -13
- package/cjs/function/extract_function.js.map +0 -1
- package/cjs/function/function_type.d.ts +0 -59
- package/cjs/function/function_type.d.ts.map +0 -1
- package/cjs/function/function_type.js +0 -3
- package/cjs/function/function_type.js.map +0 -1
- package/cjs/function/strict_function_type.d.ts +0 -49
- package/cjs/function/strict_function_type.d.ts.map +0 -1
- package/cjs/function/strict_function_type.js +0 -3
- package/cjs/function/strict_function_type.js.map +0 -1
- package/cjs/functional/ChainFn.d.ts +0 -6
- package/cjs/functional/ChainFn.d.ts.map +0 -1
- package/cjs/functional/ChainFn.js +0 -3
- package/cjs/functional/ChainFn.js.map +0 -1
- package/cjs/functional/Maybe.d.ts +0 -13
- package/cjs/functional/Maybe.d.ts.map +0 -1
- package/cjs/functional/Maybe.js +0 -17
- package/cjs/functional/Maybe.js.map +0 -1
- package/cjs/functional/compose.d.ts +0 -12
- package/cjs/functional/compose.d.ts.map +0 -1
- package/cjs/functional/compose.js +0 -16
- package/cjs/functional/compose.js.map +0 -1
- package/cjs/functional/context.d.ts +0 -40
- package/cjs/functional/context.d.ts.map +0 -1
- package/cjs/functional/context.js +0 -32
- package/cjs/functional/context.js.map +0 -1
- package/cjs/functional/index.d.ts +0 -4
- package/cjs/functional/index.d.ts.map +0 -1
- package/cjs/functional/index.js +0 -19
- package/cjs/functional/index.js.map +0 -1
- package/cjs/index.d.ts +0 -84
- package/cjs/index.d.ts.map +0 -1
- package/cjs/index.js +0 -45
- package/cjs/index.js.map +0 -1
- package/cjs/json.d.ts +0 -12
- package/cjs/json.d.ts.map +0 -1
- package/cjs/json.js +0 -14
- package/cjs/json.js.map +0 -1
- package/cjs/math/abs.d.ts +0 -6
- package/cjs/math/abs.d.ts.map +0 -1
- package/cjs/math/abs.js +0 -3
- package/cjs/math/abs.js.map +0 -1
- package/cjs/math/add.d.ts +0 -7
- package/cjs/math/add.d.ts.map +0 -1
- package/cjs/math/add.js +0 -3
- package/cjs/math/add.js.map +0 -1
- package/cjs/math/greater_than.d.ts +0 -4
- package/cjs/math/greater_than.d.ts.map +0 -1
- package/cjs/math/greater_than.js +0 -3
- package/cjs/math/greater_than.js.map +0 -1
- package/cjs/math/index.d.ts +0 -7
- package/cjs/math/index.d.ts.map +0 -1
- package/cjs/math/index.js +0 -3
- package/cjs/math/index.js.map +0 -1
- package/cjs/math/math_plus.d.ts +0 -5
- package/cjs/math/math_plus.d.ts.map +0 -1
- package/cjs/math/math_plus.js +0 -3
- package/cjs/math/math_plus.js.map +0 -1
- package/cjs/math/math_plus.to_negative.d.ts +0 -13
- package/cjs/math/math_plus.to_negative.d.ts.map +0 -1
- package/cjs/math/math_plus.to_negative.js +0 -3
- package/cjs/math/math_plus.to_negative.js.map +0 -1
- package/cjs/math/max.d.ts +0 -4
- package/cjs/math/max.d.ts.map +0 -1
- package/cjs/math/max.js +0 -3
- package/cjs/math/max.js.map +0 -1
- package/cjs/math/multiply.d.ts +0 -6
- package/cjs/math/multiply.d.ts.map +0 -1
- package/cjs/math/multiply.js +0 -3
- package/cjs/math/multiply.js.map +0 -1
- package/cjs/math/numeric_struct.d.ts +0 -1480
- package/cjs/math/numeric_struct.d.ts.map +0 -1
- package/cjs/math/numeric_struct.js +0 -3
- package/cjs/math/numeric_struct.js.map +0 -1
- package/cjs/math/subtract.d.ts +0 -7
- package/cjs/math/subtract.d.ts.map +0 -1
- package/cjs/math/subtract.js +0 -3
- package/cjs/math/subtract.js.map +0 -1
- package/cjs/merge.d.ts +0 -55
- package/cjs/merge.d.ts.map +0 -1
- package/cjs/merge.js +0 -18
- package/cjs/merge.js.map +0 -1
- package/cjs/mix_types/any_or_never_type.d.ts +0 -37
- package/cjs/mix_types/any_or_never_type.d.ts.map +0 -1
- package/cjs/mix_types/any_or_never_type.js +0 -3
- package/cjs/mix_types/any_or_never_type.js.map +0 -1
- package/cjs/never/never_type.d.ts +0 -62
- package/cjs/never/never_type.d.ts.map +0 -1
- package/cjs/never/never_type.js +0 -3
- package/cjs/never/never_type.js.map +0 -1
- package/cjs/nodejs/index.d.ts +0 -2
- package/cjs/nodejs/index.d.ts.map +0 -1
- package/cjs/nodejs/index.js +0 -18
- package/cjs/nodejs/index.js.map +0 -1
- package/cjs/nodejs/isNodeError.d.ts +0 -31
- package/cjs/nodejs/isNodeError.d.ts.map +0 -1
- package/cjs/nodejs/isNodeError.js +0 -13
- package/cjs/nodejs/isNodeError.js.map +0 -1
- package/cjs/nominal/brand.d.ts +0 -23
- package/cjs/nominal/brand.d.ts.map +0 -1
- package/cjs/nominal/brand.js +0 -20
- package/cjs/nominal/brand.js.map +0 -1
- package/cjs/nominal/constants.d.ts +0 -3
- package/cjs/nominal/constants.d.ts.map +0 -1
- package/cjs/nominal/constants.js +0 -6
- package/cjs/nominal/constants.js.map +0 -1
- package/cjs/nominal/flavor.d.ts +0 -31
- package/cjs/nominal/flavor.d.ts.map +0 -1
- package/cjs/nominal/flavor.js +0 -20
- package/cjs/nominal/flavor.js.map +0 -1
- package/cjs/nominal/index.d.ts +0 -4
- package/cjs/nominal/index.d.ts.map +0 -1
- package/cjs/nominal/index.js +0 -20
- package/cjs/nominal/index.js.map +0 -1
- package/cjs/nominal/nominal_match.d.ts +0 -5
- package/cjs/nominal/nominal_match.d.ts.map +0 -1
- package/cjs/nominal/nominal_match.js +0 -13
- package/cjs/nominal/nominal_match.js.map +0 -1
- package/cjs/null/null_type.d.ts +0 -50
- package/cjs/null/null_type.d.ts.map +0 -1
- package/cjs/null/null_type.js +0 -3
- package/cjs/null/null_type.js.map +0 -1
- package/cjs/number/cast.d.ts +0 -10
- package/cjs/number/cast.d.ts.map +0 -1
- package/cjs/number/cast.js +0 -3
- package/cjs/number/cast.js.map +0 -1
- package/cjs/number/number_array.d.ts +0 -1
- package/cjs/number/number_array.d.ts.map +0 -1
- package/cjs/number/number_array.js +0 -16
- package/cjs/number/number_array.js.map +0 -1
- package/cjs/number/number_plus.d.ts +0 -7
- package/cjs/number/number_plus.d.ts.map +0 -1
- package/cjs/number/number_plus.js +0 -3
- package/cjs/number/number_plus.js.map +0 -1
- package/cjs/number/number_type.d.ts +0 -50
- package/cjs/number/number_type.d.ts.map +0 -1
- package/cjs/number/number_type.js +0 -3
- package/cjs/number/number_type.js.map +0 -1
- package/cjs/number/strict_number_type.d.ts +0 -65
- package/cjs/number/strict_number_type.d.ts.map +0 -1
- package/cjs/number/strict_number_type.js +0 -3
- package/cjs/number/strict_number_type.js.map +0 -1
- package/cjs/numeric/cast.d.ts +0 -27
- package/cjs/numeric/cast.d.ts.map +0 -1
- package/cjs/numeric/cast.js +0 -3
- package/cjs/numeric/cast.js.map +0 -1
- package/cjs/numeric/integer.d.ts +0 -69
- package/cjs/numeric/integer.d.ts.map +0 -1
- package/cjs/numeric/integer.js +0 -3
- package/cjs/numeric/integer.js.map +0 -1
- package/cjs/numeric/negative.d.ts +0 -70
- package/cjs/numeric/negative.d.ts.map +0 -1
- package/cjs/numeric/negative.js +0 -3
- package/cjs/numeric/negative.js.map +0 -1
- package/cjs/numeric/numeric_plus.d.ts +0 -5
- package/cjs/numeric/numeric_plus.d.ts.map +0 -1
- package/cjs/numeric/numeric_plus.js +0 -3
- package/cjs/numeric/numeric_plus.js.map +0 -1
- package/cjs/numeric/numeric_type.d.ts +0 -59
- package/cjs/numeric/numeric_type.d.ts.map +0 -1
- package/cjs/numeric/numeric_type.js +0 -3
- package/cjs/numeric/numeric_type.js.map +0 -1
- package/cjs/numeric/positive.d.ts +0 -53
- package/cjs/numeric/positive.d.ts.map +0 -1
- package/cjs/numeric/positive.js +0 -3
- package/cjs/numeric/positive.js.map +0 -1
- package/cjs/object/ANotB.d.ts +0 -9
- package/cjs/object/ANotB.d.ts.map +0 -1
- package/cjs/object/ANotB.js +0 -3
- package/cjs/object/ANotB.js.map +0 -1
- package/cjs/object/AnyRecord.d.ts +0 -3
- package/cjs/object/AnyRecord.d.ts.map +0 -1
- package/cjs/object/AnyRecord.js +0 -3
- package/cjs/object/AnyRecord.js.map +0 -1
- package/cjs/object/ExcludePropType.d.ts +0 -7
- package/cjs/object/ExcludePropType.d.ts.map +0 -1
- package/cjs/object/ExcludePropType.js +0 -3
- package/cjs/object/ExcludePropType.js.map +0 -1
- package/cjs/object/IsDisjoint.d.ts +0 -9
- package/cjs/object/IsDisjoint.d.ts.map +0 -1
- package/cjs/object/IsDisjoint.js +0 -3
- package/cjs/object/IsDisjoint.js.map +0 -1
- package/cjs/object/IsRecord.d.ts +0 -2
- package/cjs/object/IsRecord.d.ts.map +0 -1
- package/cjs/object/IsRecord.js +0 -3
- package/cjs/object/IsRecord.js.map +0 -1
- package/cjs/object/KeyTypes.d.ts +0 -7
- package/cjs/object/KeyTypes.d.ts.map +0 -1
- package/cjs/object/KeyTypes.js +0 -3
- package/cjs/object/KeyTypes.js.map +0 -1
- package/cjs/object/KeyofOptional.d.ts +0 -6
- package/cjs/object/KeyofOptional.d.ts.map +0 -1
- package/cjs/object/KeyofOptional.js +0 -3
- package/cjs/object/KeyofOptional.js.map +0 -1
- package/cjs/object/KeysWithDiffType.d.ts +0 -7
- package/cjs/object/KeysWithDiffType.d.ts.map +0 -1
- package/cjs/object/KeysWithDiffType.js +0 -3
- package/cjs/object/KeysWithDiffType.js.map +0 -1
- package/cjs/object/KnownKeys.d.ts +0 -7
- package/cjs/object/KnownKeys.d.ts.map +0 -1
- package/cjs/object/KnownKeys.js +0 -6
- package/cjs/object/KnownKeys.js.map +0 -1
- package/cjs/object/OptionalKeys.d.ts +0 -8
- package/cjs/object/OptionalKeys.d.ts.map +0 -1
- package/cjs/object/OptionalKeys.js +0 -3
- package/cjs/object/OptionalKeys.js.map +0 -1
- package/cjs/object/Partial.d.ts +0 -22
- package/cjs/object/Partial.d.ts.map +0 -1
- package/cjs/object/Partial.js +0 -3
- package/cjs/object/Partial.js.map +0 -1
- package/cjs/object/RecursiveIntersect.d.ts +0 -16
- package/cjs/object/RecursiveIntersect.d.ts.map +0 -1
- package/cjs/object/RecursiveIntersect.js +0 -3
- package/cjs/object/RecursiveIntersect.js.map +0 -1
- package/cjs/object/RecursiveRequired.d.ts +0 -5
- package/cjs/object/RecursiveRequired.d.ts.map +0 -1
- package/cjs/object/RecursiveRequired.js +0 -3
- package/cjs/object/RecursiveRequired.js.map +0 -1
- package/cjs/object/Required.d.ts +0 -7
- package/cjs/object/Required.d.ts.map +0 -1
- package/cjs/object/Required.js +0 -4
- package/cjs/object/Required.js.map +0 -1
- package/cjs/object/RequiredKeys.d.ts +0 -7
- package/cjs/object/RequiredKeys.d.ts.map +0 -1
- package/cjs/object/RequiredKeys.js +0 -3
- package/cjs/object/RequiredKeys.js.map +0 -1
- package/cjs/object/SpreadRecord.d.ts +0 -3
- package/cjs/object/SpreadRecord.d.ts.map +0 -1
- package/cjs/object/SpreadRecord.js +0 -3
- package/cjs/object/SpreadRecord.js.map +0 -1
- package/cjs/object/ValueOf.d.ts +0 -2
- package/cjs/object/ValueOf.d.ts.map +0 -1
- package/cjs/object/ValueOf.js +0 -3
- package/cjs/object/ValueOf.js.map +0 -1
- package/cjs/object/everyKey.d.ts +0 -3
- package/cjs/object/everyKey.d.ts.map +0 -1
- package/cjs/object/everyKey.js +0 -8
- package/cjs/object/everyKey.js.map +0 -1
- package/cjs/object/facade.d.ts +0 -17
- package/cjs/object/facade.d.ts.map +0 -1
- package/cjs/object/facade.js +0 -27
- package/cjs/object/facade.js.map +0 -1
- package/cjs/object/filterKey.d.ts +0 -3
- package/cjs/object/filterKey.d.ts.map +0 -1
- package/cjs/object/filterKey.js +0 -10
- package/cjs/object/filterKey.js.map +0 -1
- package/cjs/object/findKey.d.ts +0 -3
- package/cjs/object/findKey.d.ts.map +0 -1
- package/cjs/object/findKey.js +0 -10
- package/cjs/object/findKey.js.map +0 -1
- package/cjs/object/forEachKey.d.ts +0 -3
- package/cjs/object/forEachKey.d.ts.map +0 -1
- package/cjs/object/forEachKey.js +0 -8
- package/cjs/object/forEachKey.js.map +0 -1
- package/cjs/object/getField.d.ts +0 -4
- package/cjs/object/getField.d.ts.map +0 -1
- package/cjs/object/getField.js +0 -8
- package/cjs/object/getField.js.map +0 -1
- package/cjs/object/hasKey.d.ts +0 -4
- package/cjs/object/hasKey.d.ts.map +0 -1
- package/cjs/object/hasKey.js +0 -8
- package/cjs/object/hasKey.js.map +0 -1
- package/cjs/object/hasProperty.d.ts +0 -3
- package/cjs/object/hasProperty.d.ts.map +0 -1
- package/cjs/object/hasProperty.js +0 -8
- package/cjs/object/hasProperty.js.map +0 -1
- package/cjs/object/index.d.ts +0 -39
- package/cjs/object/index.d.ts.map +0 -1
- package/cjs/object/index.js +0 -36
- package/cjs/object/index.js.map +0 -1
- package/cjs/object/left_join.d.ts +0 -15
- package/cjs/object/left_join.d.ts.map +0 -1
- package/cjs/object/left_join.js +0 -3
- package/cjs/object/left_join.js.map +0 -1
- package/cjs/object/mapKey.d.ts +0 -3
- package/cjs/object/mapKey.d.ts.map +0 -1
- package/cjs/object/mapKey.js +0 -10
- package/cjs/object/mapKey.js.map +0 -1
- package/cjs/object/mapProperties.d.ts +0 -14
- package/cjs/object/mapProperties.d.ts.map +0 -1
- package/cjs/object/mapProperties.js +0 -17
- package/cjs/object/mapProperties.js.map +0 -1
- package/cjs/object/object_type.d.ts +0 -54
- package/cjs/object/object_type.d.ts.map +0 -1
- package/cjs/object/object_type.js +0 -3
- package/cjs/object/object_type.js.map +0 -1
- package/cjs/object/omit.d.ts +0 -29
- package/cjs/object/omit.d.ts.map +0 -1
- package/cjs/object/omit.js +0 -14
- package/cjs/object/omit.js.map +0 -1
- package/cjs/object/optional_key.d.ts +0 -35
- package/cjs/object/optional_key.d.ts.map +0 -1
- package/cjs/object/optional_key.js +0 -3
- package/cjs/object/optional_key.js.map +0 -1
- package/cjs/object/pick.d.ts +0 -29
- package/cjs/object/pick.d.ts.map +0 -1
- package/cjs/object/pick.js +0 -14
- package/cjs/object/pick.js.map +0 -1
- package/cjs/object/properties.d.ts +0 -7
- package/cjs/object/properties.d.ts.map +0 -1
- package/cjs/object/properties.js +0 -3
- package/cjs/object/properties.js.map +0 -1
- package/cjs/object/record.d.ts +0 -17
- package/cjs/object/record.d.ts.map +0 -1
- package/cjs/object/record.js +0 -9
- package/cjs/object/record.js.map +0 -1
- package/cjs/object/recursive_partial.d.ts +0 -29
- package/cjs/object/recursive_partial.d.ts.map +0 -1
- package/cjs/object/recursive_partial.js +0 -4
- package/cjs/object/recursive_partial.js.map +0 -1
- package/cjs/object/reduceKey.d.ts +0 -7
- package/cjs/object/reduceKey.d.ts.map +0 -1
- package/cjs/object/reduceKey.js +0 -12
- package/cjs/object/reduceKey.js.map +0 -1
- package/cjs/object/replaceProperty.d.ts +0 -6
- package/cjs/object/replaceProperty.d.ts.map +0 -1
- package/cjs/object/replaceProperty.js +0 -8
- package/cjs/object/replaceProperty.js.map +0 -1
- package/cjs/object/someKey.d.ts +0 -3
- package/cjs/object/someKey.d.ts.map +0 -1
- package/cjs/object/someKey.js +0 -10
- package/cjs/object/someKey.js.map +0 -1
- package/cjs/object/split.d.ts +0 -76
- package/cjs/object/split.d.ts.map +0 -1
- package/cjs/object/split.js +0 -12
- package/cjs/object/split.js.map +0 -1
- package/cjs/object/typeOverrideIncompatible.d.ts +0 -3
- package/cjs/object/typeOverrideIncompatible.d.ts.map +0 -1
- package/cjs/object/typeOverrideIncompatible.js +0 -13
- package/cjs/object/typeOverrideIncompatible.js.map +0 -1
- package/cjs/package.json +0 -3
- package/cjs/predicates/CanAssign.d.ts +0 -45
- package/cjs/predicates/CanAssign.d.ts.map +0 -1
- package/cjs/predicates/CanAssign.js +0 -8
- package/cjs/predicates/CanAssign.js.map +0 -1
- package/cjs/predicates/Extends.d.ts +0 -5
- package/cjs/predicates/Extends.d.ts.map +0 -1
- package/cjs/predicates/Extends.js +0 -3
- package/cjs/predicates/Extends.js.map +0 -1
- package/cjs/predicates/If.d.ts +0 -2
- package/cjs/predicates/If.d.ts.map +0 -1
- package/cjs/predicates/If.js +0 -3
- package/cjs/predicates/If.js.map +0 -1
- package/cjs/predicates/IsEmptyObject.d.ts +0 -2
- package/cjs/predicates/IsEmptyObject.d.ts.map +0 -1
- package/cjs/predicates/IsEmptyObject.js +0 -3
- package/cjs/predicates/IsEmptyObject.js.map +0 -1
- package/cjs/predicates/index.d.ts +0 -7
- package/cjs/predicates/index.d.ts.map +0 -1
- package/cjs/predicates/index.js +0 -18
- package/cjs/predicates/index.js.map +0 -1
- package/cjs/predicates/literal.d.ts +0 -22
- package/cjs/predicates/literal.d.ts.map +0 -1
- package/cjs/predicates/literal.js +0 -3
- package/cjs/predicates/literal.js.map +0 -1
- package/cjs/predicates/logical.d.ts +0 -5
- package/cjs/predicates/logical.d.ts.map +0 -1
- package/cjs/predicates/logical.js +0 -3
- package/cjs/predicates/logical.js.map +0 -1
- package/cjs/primitive.d.ts +0 -5
- package/cjs/primitive.d.ts.map +0 -1
- package/cjs/primitive.js +0 -3
- package/cjs/primitive.js.map +0 -1
- package/cjs/promise/MaybePromise.d.ts +0 -22
- package/cjs/promise/MaybePromise.d.ts.map +0 -1
- package/cjs/promise/MaybePromise.js +0 -12
- package/cjs/promise/MaybePromise.js.map +0 -1
- package/cjs/promise/PromiseValue.d.ts +0 -13
- package/cjs/promise/PromiseValue.d.ts.map +0 -1
- package/cjs/promise/PromiseValue.js +0 -3
- package/cjs/promise/PromiseValue.js.map +0 -1
- package/cjs/promise/PromiseValueMerge.d.ts +0 -5
- package/cjs/promise/PromiseValueMerge.d.ts.map +0 -1
- package/cjs/promise/PromiseValueMerge.js +0 -3
- package/cjs/promise/PromiseValueMerge.js.map +0 -1
- package/cjs/promise/index.d.ts +0 -6
- package/cjs/promise/index.d.ts.map +0 -1
- package/cjs/promise/index.js +0 -20
- package/cjs/promise/index.js.map +0 -1
- package/cjs/promise/isPromise.d.ts +0 -2
- package/cjs/promise/isPromise.d.ts.map +0 -1
- package/cjs/promise/isPromise.js +0 -9
- package/cjs/promise/isPromise.js.map +0 -1
- package/cjs/promise/mapSeries.d.ts +0 -2
- package/cjs/promise/mapSeries.d.ts.map +0 -1
- package/cjs/promise/mapSeries.js +0 -8
- package/cjs/promise/mapSeries.js.map +0 -1
- package/cjs/string/strict_string_type.d.ts +0 -61
- package/cjs/string/strict_string_type.d.ts.map +0 -1
- package/cjs/string/strict_string_type.js +0 -3
- package/cjs/string/strict_string_type.js.map +0 -1
- package/cjs/string/string.d.ts +0 -24
- package/cjs/string/string.d.ts.map +0 -1
- package/cjs/string/string.js +0 -3
- package/cjs/string/string.js.map +0 -1
- package/cjs/string/string_plus.d.ts +0 -27
- package/cjs/string/string_plus.d.ts.map +0 -1
- package/cjs/string/string_plus.js +0 -3
- package/cjs/string/string_plus.js.map +0 -1
- package/cjs/string/string_type.d.ts +0 -58
- package/cjs/string/string_type.d.ts.map +0 -1
- package/cjs/string/string_type.js +0 -3
- package/cjs/string/string_type.js.map +0 -1
- package/cjs/symbol/symbol_type.d.ts +0 -50
- package/cjs/symbol/symbol_type.d.ts.map +0 -1
- package/cjs/symbol/symbol_type.js +0 -3
- package/cjs/symbol/symbol_type.js.map +0 -1
- package/cjs/testing/stub.d.ts +0 -31
- package/cjs/testing/stub.d.ts.map +0 -1
- package/cjs/testing/stub.js +0 -60
- package/cjs/testing/stub.js.map +0 -1
- package/cjs/testing/test_type.d.ts +0 -310
- package/cjs/testing/test_type.d.ts.map +0 -1
- package/cjs/testing/test_type.js +0 -16
- package/cjs/testing/test_type.js.map +0 -1
- package/cjs/tuple/common_prop_keys.d.ts +0 -34
- package/cjs/tuple/common_prop_keys.d.ts.map +0 -1
- package/cjs/tuple/common_prop_keys.js +0 -3
- package/cjs/tuple/common_prop_keys.js.map +0 -1
- package/cjs/tuple/create_tuple.d.ts +0 -28
- package/cjs/tuple/create_tuple.d.ts.map +0 -1
- package/cjs/tuple/create_tuple.js +0 -3
- package/cjs/tuple/create_tuple.js.map +0 -1
- package/cjs/tuple/drop.d.ts +0 -91
- package/cjs/tuple/drop.d.ts.map +0 -1
- package/cjs/tuple/drop.js +0 -13
- package/cjs/tuple/drop.js.map +0 -1
- package/cjs/tuple/tail.d.ts +0 -6
- package/cjs/tuple/tail.d.ts.map +0 -1
- package/cjs/tuple/tail.js +0 -3
- package/cjs/tuple/tail.js.map +0 -1
- package/cjs/tuple/tuple_plus.common_prop_keys.d.ts +0 -28
- package/cjs/tuple/tuple_plus.common_prop_keys.d.ts.map +0 -1
- package/cjs/tuple/tuple_plus.common_prop_keys.js +0 -3
- package/cjs/tuple/tuple_plus.common_prop_keys.js.map +0 -1
- package/cjs/tuple/tuple_plus.d.ts +0 -6
- package/cjs/tuple/tuple_plus.d.ts.map +0 -1
- package/cjs/tuple/tuple_plus.drop_match.d.ts +0 -6
- package/cjs/tuple/tuple_plus.drop_match.d.ts.map +0 -1
- package/cjs/tuple/tuple_plus.drop_match.js +0 -3
- package/cjs/tuple/tuple_plus.drop_match.js.map +0 -1
- package/cjs/tuple/tuple_plus.filter.d.ts +0 -13
- package/cjs/tuple/tuple_plus.filter.d.ts.map +0 -1
- package/cjs/tuple/tuple_plus.filter.js +0 -3
- package/cjs/tuple/tuple_plus.filter.js.map +0 -1
- package/cjs/tuple/tuple_plus.find.d.ts +0 -64
- package/cjs/tuple/tuple_plus.find.d.ts.map +0 -1
- package/cjs/tuple/tuple_plus.find.js +0 -3
- package/cjs/tuple/tuple_plus.find.js.map +0 -1
- package/cjs/tuple/tuple_plus.js +0 -3
- package/cjs/tuple/tuple_plus.js.map +0 -1
- package/cjs/tuple/tuple_plus.pad_start.d.ts +0 -28
- package/cjs/tuple/tuple_plus.pad_start.d.ts.map +0 -1
- package/cjs/tuple/tuple_plus.pad_start.js +0 -3
- package/cjs/tuple/tuple_plus.pad_start.js.map +0 -1
- package/cjs/tuple/tuple_type.d.ts +0 -77
- package/cjs/tuple/tuple_type.d.ts.map +0 -1
- package/cjs/tuple/tuple_type.js +0 -3
- package/cjs/tuple/tuple_type.js.map +0 -1
- package/cjs/type/failed.d.ts +0 -32
- package/cjs/type/failed.d.ts.map +0 -1
- package/cjs/type/failed.js +0 -3
- package/cjs/type/failed.js.map +0 -1
- package/cjs/type/no_infer.d.ts +0 -27
- package/cjs/type/no_infer.d.ts.map +0 -1
- package/cjs/type/no_infer.js +0 -3
- package/cjs/type/no_infer.js.map +0 -1
- package/cjs/type-guard/is_type.d.ts +0 -27
- package/cjs/type-guard/is_type.d.ts.map +0 -1
- package/cjs/type-guard/is_type.js +0 -32
- package/cjs/type-guard/is_type.js.map +0 -1
- package/cjs/undefined/undefined_type.d.ts +0 -53
- package/cjs/undefined/undefined_type.d.ts.map +0 -1
- package/cjs/undefined/undefined_type.js +0 -3
- package/cjs/undefined/undefined_type.js.map +0 -1
- package/cjs/union/union.d.ts +0 -33
- package/cjs/union/union.d.ts.map +0 -1
- package/cjs/union/union.js +0 -3
- package/cjs/union/union.js.map +0 -1
- package/cjs/union/union_to_intersection.d.ts +0 -3
- package/cjs/union/union_to_intersection.d.ts.map +0 -1
- package/cjs/union/union_to_intersection.js +0 -8
- package/cjs/union/union_to_intersection.js.map +0 -1
- package/cjs/union_keys.d.ts +0 -6
- package/cjs/union_keys.d.ts.map +0 -1
- package/cjs/union_keys.js +0 -3
- package/cjs/union_keys.js.map +0 -1
- package/cjs/unknown/unknown_type.d.ts +0 -63
- package/cjs/unknown/unknown_type.d.ts.map +0 -1
- package/cjs/unknown/unknown_type.js +0 -3
- package/cjs/unknown/unknown_type.js.map +0 -1
- package/cjs/unpartial.d.ts +0 -2
- package/cjs/unpartial.d.ts.map +0 -1
- package/cjs/unpartial.js +0 -8
- package/cjs/unpartial.js.map +0 -1
- package/cjs/utils/NonNull.d.ts +0 -2
- package/cjs/utils/NonNull.d.ts.map +0 -1
- package/cjs/utils/NonNull.js +0 -3
- package/cjs/utils/NonNull.js.map +0 -1
- package/cjs/utils/NonUndefined.d.ts +0 -2
- package/cjs/utils/NonUndefined.d.ts.map +0 -1
- package/cjs/utils/NonUndefined.js +0 -3
- package/cjs/utils/NonUndefined.js.map +0 -1
- package/cjs/utils/Widen.d.ts +0 -6
- package/cjs/utils/Widen.d.ts.map +0 -1
- package/cjs/utils/Widen.js +0 -3
- package/cjs/utils/Widen.js.map +0 -1
- package/cjs/utils/as.d.ts +0 -10
- package/cjs/utils/as.d.ts.map +0 -1
- package/cjs/utils/as.js +0 -26
- package/cjs/utils/as.js.map +0 -1
- package/cjs/utils/index.d.ts +0 -43
- package/cjs/utils/index.d.ts.map +0 -1
- package/cjs/utils/index.js +0 -19
- package/cjs/utils/index.js.map +0 -1
- package/cjs/utils/inspect.d.ts +0 -5
- package/cjs/utils/inspect.d.ts.map +0 -1
- package/cjs/utils/inspect.js +0 -13
- package/cjs/utils/inspect.js.map +0 -1
- package/cjs/utils/options.d.ts +0 -10
- package/cjs/utils/options.d.ts.map +0 -1
- package/cjs/utils/options.js +0 -3
- package/cjs/utils/options.js.map +0 -1
- package/cjs/void/void_type.d.ts +0 -43
- package/cjs/void/void_type.d.ts.map +0 -1
- package/cjs/void/void_type.js +0 -3
- package/cjs/void/void_type.js.map +0 -1
- package/esm/any/any_type.d.ts +0 -63
- package/esm/any/any_type.d.ts.map +0 -1
- package/esm/any/any_type.js +0 -2
- package/esm/any/any_type.js.map +0 -1
- package/esm/array/array_index.d.ts +0 -37
- package/esm/array/array_index.d.ts.map +0 -1
- package/esm/array/array_index.js +0 -2
- package/esm/array/array_index.js.map +0 -1
- package/esm/array/array_type.d.ts +0 -66
- package/esm/array/array_type.d.ts.map +0 -1
- package/esm/array/array_type.js +0 -2
- package/esm/array/array_type.js.map +0 -1
- package/esm/bigint/bigint_type.d.ts +0 -54
- package/esm/bigint/bigint_type.d.ts.map +0 -1
- package/esm/bigint/bigint_type.js +0 -2
- package/esm/bigint/bigint_type.js.map +0 -1
- package/esm/bigint/strict_bigint_type.d.ts +0 -56
- package/esm/bigint/strict_bigint_type.d.ts.map +0 -1
- package/esm/bigint/strict_bigint_type.js +0 -2
- package/esm/bigint/strict_bigint_type.js.map +0 -1
- package/esm/boolean/boolean_type.d.ts +0 -56
- package/esm/boolean/boolean_type.d.ts.map +0 -1
- package/esm/boolean/boolean_type.js +0 -2
- package/esm/boolean/boolean_type.js.map +0 -1
- package/esm/boolean/false_type.d.ts +0 -49
- package/esm/boolean/false_type.d.ts.map +0 -1
- package/esm/boolean/false_type.js +0 -2
- package/esm/boolean/false_type.js.map +0 -1
- package/esm/boolean/strict_boolean_type.d.ts +0 -53
- package/esm/boolean/strict_boolean_type.d.ts.map +0 -1
- package/esm/boolean/strict_boolean_type.js +0 -2
- package/esm/boolean/strict_boolean_type.js.map +0 -1
- package/esm/boolean/true_type.d.ts +0 -49
- package/esm/boolean/true_type.d.ts.map +0 -1
- package/esm/boolean/true_type.js +0 -2
- package/esm/boolean/true_type.js.map +0 -1
- package/esm/function/function_type.d.ts +0 -59
- package/esm/function/function_type.d.ts.map +0 -1
- package/esm/function/function_type.js +0 -2
- package/esm/function/function_type.js.map +0 -1
- package/esm/function/strict_function_type.d.ts +0 -49
- package/esm/function/strict_function_type.d.ts.map +0 -1
- package/esm/function/strict_function_type.js +0 -2
- package/esm/function/strict_function_type.js.map +0 -1
- package/esm/merge.d.ts +0 -55
- package/esm/merge.d.ts.map +0 -1
- package/esm/merge.js +0 -14
- package/esm/merge.js.map +0 -1
- package/esm/mix_types/any_or_never_type.d.ts +0 -37
- package/esm/mix_types/any_or_never_type.d.ts.map +0 -1
- package/esm/mix_types/any_or_never_type.js +0 -2
- package/esm/mix_types/any_or_never_type.js.map +0 -1
- package/esm/never/never_type.d.ts +0 -62
- package/esm/never/never_type.d.ts.map +0 -1
- package/esm/never/never_type.js +0 -2
- package/esm/never/never_type.js.map +0 -1
- package/esm/null/null_type.d.ts +0 -50
- package/esm/null/null_type.d.ts.map +0 -1
- package/esm/null/null_type.js +0 -2
- package/esm/null/null_type.js.map +0 -1
- package/esm/number/number_type.d.ts +0 -50
- package/esm/number/number_type.d.ts.map +0 -1
- package/esm/number/number_type.js +0 -2
- package/esm/number/number_type.js.map +0 -1
- package/esm/number/strict_number_type.d.ts +0 -65
- package/esm/number/strict_number_type.d.ts.map +0 -1
- package/esm/number/strict_number_type.js +0 -2
- package/esm/number/strict_number_type.js.map +0 -1
- package/esm/numeric/integer.d.ts +0 -69
- package/esm/numeric/integer.d.ts.map +0 -1
- package/esm/numeric/integer.js +0 -2
- package/esm/numeric/integer.js.map +0 -1
- package/esm/numeric/negative.d.ts +0 -70
- package/esm/numeric/negative.d.ts.map +0 -1
- package/esm/numeric/negative.js +0 -2
- package/esm/numeric/negative.js.map +0 -1
- package/esm/numeric/positive.d.ts +0 -53
- package/esm/numeric/positive.d.ts.map +0 -1
- package/esm/numeric/positive.js +0 -2
- package/esm/numeric/positive.js.map +0 -1
- package/esm/object/AnyRecord.d.ts +0 -3
- package/esm/object/AnyRecord.d.ts.map +0 -1
- package/esm/object/AnyRecord.js +0 -2
- package/esm/object/AnyRecord.js.map +0 -1
- package/esm/object/OptionalKeys.d.ts +0 -8
- package/esm/object/OptionalKeys.d.ts.map +0 -1
- package/esm/object/OptionalKeys.js +0 -2
- package/esm/object/OptionalKeys.js.map +0 -1
- package/esm/object/object_type.d.ts +0 -54
- package/esm/object/object_type.d.ts.map +0 -1
- package/esm/object/object_type.js +0 -2
- package/esm/object/object_type.js.map +0 -1
- package/esm/string/strict_string_type.d.ts +0 -61
- package/esm/string/strict_string_type.d.ts.map +0 -1
- package/esm/string/strict_string_type.js +0 -2
- package/esm/string/strict_string_type.js.map +0 -1
- package/esm/string/string_type.d.ts +0 -58
- package/esm/string/string_type.d.ts.map +0 -1
- package/esm/string/string_type.js +0 -2
- package/esm/string/string_type.js.map +0 -1
- package/esm/symbol/symbol_type.d.ts +0 -50
- package/esm/symbol/symbol_type.d.ts.map +0 -1
- package/esm/symbol/symbol_type.js +0 -2
- package/esm/symbol/symbol_type.js.map +0 -1
- package/esm/tuple/tuple_type.d.ts +0 -77
- package/esm/tuple/tuple_type.d.ts.map +0 -1
- package/esm/tuple/tuple_type.js +0 -2
- package/esm/tuple/tuple_type.js.map +0 -1
- package/esm/undefined/undefined_type.d.ts +0 -53
- package/esm/undefined/undefined_type.d.ts.map +0 -1
- package/esm/undefined/undefined_type.js +0 -2
- package/esm/undefined/undefined_type.js.map +0 -1
- package/esm/unknown/unknown_type.d.ts +0 -63
- package/esm/unknown/unknown_type.d.ts.map +0 -1
- package/esm/unknown/unknown_type.js +0 -2
- package/esm/unknown/unknown_type.js.map +0 -1
- package/esm/utils/NonNull.d.ts +0 -2
- package/esm/utils/NonNull.d.ts.map +0 -1
- package/esm/utils/NonNull.js +0 -2
- package/esm/utils/NonNull.js.map +0 -1
- package/esm/utils/NonUndefined.d.ts +0 -2
- package/esm/utils/NonUndefined.d.ts.map +0 -1
- package/esm/utils/NonUndefined.js +0 -2
- package/esm/utils/NonUndefined.js.map +0 -1
- package/esm/void/void_type.d.ts +0 -43
- package/esm/void/void_type.d.ts.map +0 -1
- package/esm/void/void_type.js +0 -2
- package/esm/void/void_type.js.map +0 -1
- package/ts/any/any_type.ts +0 -65
- package/ts/any/readme.md +0 -110
- package/ts/array/array.at.ts +0 -30
- package/ts/array/array.entries.ts +0 -26
- package/ts/array/array.find_last.ts +0 -29
- package/ts/array/array.reverse.ts +0 -16
- package/ts/array/array.some.ts +0 -67
- package/ts/array/array_index.ts +0 -83
- package/ts/array/array_plus.common_prop_keys.ts +0 -35
- package/ts/array/array_plus.concat.ts +0 -15
- package/ts/array/array_plus.drop_match.ts +0 -16
- package/ts/array/array_plus.element_match.ts +0 -61
- package/ts/array/array_plus.filter.ts +0 -5
- package/ts/array/array_plus.find.ts +0 -71
- package/ts/array/array_plus.pad_start.ts +0 -13
- package/ts/array/array_plus.split_at.ts +0 -74
- package/ts/array/array_plus.ts +0 -14
- package/ts/array/array_type.ts +0 -71
- package/ts/array/filter.ts +0 -32
- package/ts/array/find_first.ts +0 -71
- package/ts/array/head.ts +0 -40
- package/ts/array/intersect_of_props.ts +0 -21
- package/ts/array/last.ts +0 -38
- package/ts/array/pad_start.ts +0 -39
- package/ts/array/readme.md +0 -497
- package/ts/array/union_of_props.ts +0 -17
- package/ts/array/union_of_values.ts +0 -14
- package/ts/assertion/assert_type.ts +0 -119
- package/ts/bigint/bigint_type.ts +0 -57
- package/ts/bigint/readme.md +0 -51
- package/ts/bigint/strict_bigint_type.ts +0 -61
- package/ts/boolean/boolean_type.ts +0 -61
- package/ts/boolean/false_type.ts +0 -53
- package/ts/boolean/readme.md +0 -85
- package/ts/boolean/strict_boolean_type.ts +0 -57
- package/ts/boolean/true_type.ts +0 -53
- package/ts/class/AnyConstructor.ts +0 -1
- package/ts/class/isConstructor.ts +0 -34
- package/ts/equal/equal.ts +0 -142
- package/ts/function/function_type.ts +0 -64
- package/ts/function/strict_function_type.ts +0 -53
- package/ts/functional/Maybe.ts +0 -22
- package/ts/functional/compose.ts +0 -17
- package/ts/functional/context.ts +0 -66
- package/ts/index.ts +0 -121
- package/ts/math/abs.ts +0 -18
- package/ts/math/greater_than.ts +0 -12
- package/ts/math/index.ts +0 -7
- package/ts/math/max.ts +0 -13
- package/ts/math/numeric_struct.ts +0 -656
- package/ts/merge.ts +0 -72
- package/ts/mix_types/any_or_never_type.ts +0 -38
- package/ts/mix_types/readme.md +0 -40
- package/ts/never/never_type.ts +0 -70
- package/ts/never/readme.md +0 -37
- package/ts/nominal/brand.ts +0 -43
- package/ts/nominal/flavor.ts +0 -53
- package/ts/nominal/nominal_match.ts +0 -22
- package/ts/null/null_type.ts +0 -53
- package/ts/null/readme.md +0 -24
- package/ts/number/number_plus.ts +0 -20
- package/ts/number/number_type.ts +0 -53
- package/ts/number/readme.md +0 -47
- package/ts/number/strict_number_type.ts +0 -69
- package/ts/numeric/integer.ts +0 -75
- package/ts/numeric/negative.ts +0 -101
- package/ts/numeric/numeric_plus.ts +0 -12
- package/ts/numeric/numeric_type.ts +0 -64
- package/ts/numeric/positive.ts +0 -60
- package/ts/object/ANotB.ts +0 -12
- package/ts/object/IsDisjoint.ts +0 -12
- package/ts/object/KeysWithDiffType.ts +0 -9
- package/ts/object/KnownKeys.ts +0 -17
- package/ts/object/OptionalKeys.ts +0 -9
- package/ts/object/RecursiveIntersect.ts +0 -25
- package/ts/object/RecursiveRequired.ts +0 -9
- package/ts/object/Required.ts +0 -9
- package/ts/object/RequiredKeys.ts +0 -8
- package/ts/object/facade.ts +0 -214
- package/ts/object/forEachKey.ts +0 -9
- package/ts/object/hasKey.ts +0 -7
- package/ts/object/index.ts +0 -38
- package/ts/object/left_join.ts +0 -19
- package/ts/object/mapProperties.ts +0 -22
- package/ts/object/object_type.ts +0 -57
- package/ts/object/omit.ts +0 -224
- package/ts/object/optional_key.ts +0 -38
- package/ts/object/pick.ts +0 -220
- package/ts/object/readme.md +0 -65
- package/ts/object/record.ts +0 -23
- package/ts/object/recursive_partial.ts +0 -39
- package/ts/object/replaceProperty.ts +0 -11
- package/ts/object/split.ts +0 -203
- package/ts/object/typeOverrideIncompatible.ts +0 -10
- package/ts/predicates/CanAssign.ts +0 -71
- package/ts/predicates/Extends.ts +0 -4
- package/ts/predicates/index.ts +0 -7
- package/ts/predicates/literal.ts +0 -35
- package/ts/promise/index.ts +0 -5
- package/ts/string/strict_string_type.ts +0 -65
- package/ts/string/string.ts +0 -36
- package/ts/string/string_plus.ts +0 -33
- package/ts/string/string_type.ts +0 -61
- package/ts/symbol/symbol_type.ts +0 -53
- package/ts/testing/stub.ts +0 -80
- package/ts/testing/test_type.ts +0 -317
- package/ts/tuple/common_prop_keys.ts +0 -41
- package/ts/tuple/create_tuple.ts +0 -42
- package/ts/tuple/drop.ts +0 -125
- package/ts/tuple/readme.md +0 -282
- package/ts/tuple/tail.ts +0 -12
- package/ts/tuple/tuple_plus.common_prop_keys.ts +0 -47
- package/ts/tuple/tuple_plus.filter.ts +0 -29
- package/ts/tuple/tuple_plus.find.ts +0 -88
- package/ts/tuple/tuple_plus.pad_start.ts +0 -58
- package/ts/tuple/tuple_type.ts +0 -106
- package/ts/type/no_infer.ts +0 -27
- package/ts/type-guard/is_type.ts +0 -52
- package/ts/undefined/readme.md +0 -18
- package/ts/undefined/undefined_type.ts +0 -57
- package/ts/union/readme.md +0 -81
- package/ts/union/union.ts +0 -37
- package/ts/unknown/readme.md +0 -27
- package/ts/unknown/unknown_type.ts +0 -68
- package/ts/utils/NonNull.ts +0 -1
- package/ts/utils/NonUndefined.ts +0 -1
- package/ts/utils/index.ts +0 -63
- package/ts/utils/options.ts +0 -10
- package/ts/void/readme.md +0 -26
- package/ts/void/void_type.ts +0 -50
- /package/{ts → src}/array/literal_array.ts +0 -0
- /package/{ts → src}/array/reduce_while.ts +0 -0
- /package/{ts → src}/array/reverse.ts +0 -0
- /package/{ts → src}/assertion/readme.md +0 -0
- /package/{ts → src}/bigint/cast.ts +0 -0
- /package/{ts → src}/binary/Bit.ts +0 -0
- /package/{ts → src}/binary/_binary.ts +0 -0
- /package/{ts → src}/binary/index.ts +0 -0
- /package/{ts → src}/class/index.ts +0 -0
- /package/{ts → src}/composable_types.ts +0 -0
- /package/{ts → src}/equal/readme.md +0 -0
- /package/{ts → src}/function/any_function.ts +0 -0
- /package/{ts → src}/function/extract_function.ts +0 -0
- /package/{ts → src}/function/readme.md +0 -0
- /package/{ts → src}/functional/ChainFn.ts +0 -0
- /package/{ts → src}/functional/index.ts +0 -0
- /package/{ts → src}/json.ts +0 -0
- /package/{ts → src}/math/README.md +0 -0
- /package/{ts → src}/math/add.ts +0 -0
- /package/{ts → src}/math/math_plus.to_negative.ts +0 -0
- /package/{ts → src}/math/math_plus.ts +0 -0
- /package/{ts → src}/math/multiply.ts +0 -0
- /package/{ts → src}/math/subtract.ts +0 -0
- /package/{ts → src}/nodejs/index.ts +0 -0
- /package/{ts → src}/nodejs/isNodeError.ts +0 -0
- /package/{ts → src}/nominal/constants.ts +0 -0
- /package/{ts → src}/nominal/index.ts +0 -0
- /package/{ts → src}/number/cast.ts +0 -0
- /package/{ts → src}/number/number_array.ts +0 -0
- /package/{ts → src}/numeric/cast.ts +0 -0
- /package/{ts → src}/numeric/readme.md +0 -0
- /package/{ts → src}/object/ExcludePropType.ts +0 -0
- /package/{ts → src}/object/IsRecord.ts +0 -0
- /package/{ts → src}/object/KeyTypes.ts +0 -0
- /package/{ts → src}/object/KeyofOptional.ts +0 -0
- /package/{ts → src}/object/Partial.ts +0 -0
- /package/{ts → src}/object/SpreadRecord.ts +0 -0
- /package/{ts → src}/object/ValueOf.ts +0 -0
- /package/{ts/object/AnyRecord.ts → src/object/any_record.ts} +0 -0
- /package/{ts → src}/object/everyKey.ts +0 -0
- /package/{ts → src}/object/filterKey.ts +0 -0
- /package/{ts → src}/object/findKey.ts +0 -0
- /package/{ts → src}/object/getField.ts +0 -0
- /package/{ts → src}/object/hasProperty.ts +0 -0
- /package/{ts → src}/object/mapKey.ts +0 -0
- /package/{ts → src}/object/properties.ts +0 -0
- /package/{ts → src}/object/reduceKey.ts +0 -0
- /package/{ts → src}/object/someKey.ts +0 -0
- /package/{ts → src}/predicates/If.ts +0 -0
- /package/{ts → src}/predicates/IsEmptyObject.ts +0 -0
- /package/{ts → src}/predicates/logical.ts +0 -0
- /package/{ts → src}/primitive.ts +0 -0
- /package/{ts → src}/promise/MaybePromise.ts +0 -0
- /package/{ts → src}/promise/PromiseValue.ts +0 -0
- /package/{ts → src}/promise/PromiseValueMerge.ts +0 -0
- /package/{ts → src}/promise/isPromise.ts +0 -0
- /package/{ts → src}/promise/mapSeries.ts +0 -0
- /package/{ts → src}/string/readme.md +0 -0
- /package/{ts → src}/symbol/readme.md +0 -0
- /package/{ts → src}/testing/readme.md +0 -0
- /package/{ts → src}/tuple/tuple_plus.drop_match.ts +0 -0
- /package/{ts → src}/tuple/tuple_plus.ts +0 -0
- /package/{ts → src}/type/failed.ts +0 -0
- /package/{ts → src}/type/readme.md +0 -0
- /package/{ts → src}/type-guard/readme.md +0 -0
- /package/{ts → src}/union/union_to_intersection.ts +0 -0
- /package/{ts → src}/union_keys.ts +0 -0
- /package/{ts → src}/unpartial.ts +0 -0
- /package/{ts → src}/utils/Widen.ts +0 -0
- /package/{ts → src}/utils/as.ts +0 -0
- /package/{ts → src}/utils/inspect.ts +0 -0
package/readme.md
ADDED
|
@@ -0,0 +1,1376 @@
|
|
|
1
|
+
# type-plus
|
|
2
|
+
|
|
3
|
+
[![NPM version][npm_image]][npm_url]
|
|
4
|
+
[![NPM downloads][downloads_image]][npm_url]
|
|
5
|
+
|
|
6
|
+
[![Release][github_release]][github_action_url]
|
|
7
|
+
[![Codecov][codecov_image]][codecov_url]
|
|
8
|
+
|
|
9
|
+
[![Visual Studio Code][vscode_image]][vscode_url]
|
|
10
|
+
|
|
11
|
+
More than 200 type utilities for [TypeScript] for applications, library, and type-level programming.
|
|
12
|
+
|
|
13
|
+
## Table of Contents
|
|
14
|
+
|
|
15
|
+
1. [Table of Contents](#table-of-contents)
|
|
16
|
+
2. [Installation](#installation)
|
|
17
|
+
3. [What's in the package?](#whats-in-the-package)
|
|
18
|
+
1. [Update organization](#update-organization)
|
|
19
|
+
2. [Update documentation](#update-documentation)
|
|
20
|
+
4. [Assertion Function](#assertion-function)
|
|
21
|
+
1. [assertType](#asserttype)
|
|
22
|
+
5. [Type Guard](#type-guard)
|
|
23
|
+
6. [Type Utilities](#type-utilities)
|
|
24
|
+
7. [Type Specific Utilities](#type-specific-utilities)
|
|
25
|
+
1. [any](#any)
|
|
26
|
+
2. [Array](#array)
|
|
27
|
+
3. [union](#union)
|
|
28
|
+
4. [bigint](#bigint)
|
|
29
|
+
5. [boolean](#boolean)
|
|
30
|
+
6. [function](#function)
|
|
31
|
+
7. [never](#never)
|
|
32
|
+
8. [null](#null)
|
|
33
|
+
9. [number](#number)
|
|
34
|
+
10. [numeric](#numeric)
|
|
35
|
+
11. [object](#object)
|
|
36
|
+
12. [Promise](#promise)
|
|
37
|
+
13. [string](#string)
|
|
38
|
+
14. [symbol](#symbol)
|
|
39
|
+
15. [tuple](#tuple)
|
|
40
|
+
16. [undefined](#undefined)
|
|
41
|
+
17. [unknown](#unknown)
|
|
42
|
+
18. [void](#void)
|
|
43
|
+
8. [Testing Utilities](#testing-utilities)
|
|
44
|
+
9. [Constant Types](#constant-types)
|
|
45
|
+
10. [JSON Support](#json-support)
|
|
46
|
+
11. [Type manipulation](#type-manipulation)
|
|
47
|
+
12. [Type Predicates](#type-predicates)
|
|
48
|
+
1. [Logical](#logical)
|
|
49
|
+
13. [Math](#math)
|
|
50
|
+
14. [Utility Functions](#utility-functions)
|
|
51
|
+
15. [Nominal Types](#nominal-types)
|
|
52
|
+
16. [Functional Types](#functional-types)
|
|
53
|
+
17. [Attribution](#attribution)
|
|
54
|
+
18. [Useful Tips](#useful-tips)
|
|
55
|
+
19. [Similar projects](#similar-projects)
|
|
56
|
+
|
|
57
|
+
## Installation
|
|
58
|
+
|
|
59
|
+
```sh
|
|
60
|
+
npm install type-plus
|
|
61
|
+
|
|
62
|
+
yarn add type-plus
|
|
63
|
+
|
|
64
|
+
pnpm add type-plus
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## What's in the package?
|
|
68
|
+
|
|
69
|
+
With over 200 types in [type-plus],
|
|
70
|
+
it can become difficult to find the types you need.
|
|
71
|
+
|
|
72
|
+
Also, some of the types need to be updated as TypeScript continue to evolve.
|
|
73
|
+
|
|
74
|
+
Currently, we are updating [type-plus] with the following objective:
|
|
75
|
+
|
|
76
|
+
- Update organization
|
|
77
|
+
- Update documentation
|
|
78
|
+
- Clean up and deprecate types
|
|
79
|
+
- Upgrade TypeScript from 5.0.4 to 5.1 (potential breaking changes)
|
|
80
|
+
|
|
81
|
+
### Update organization
|
|
82
|
+
|
|
83
|
+
Top-level exports of [type-plus] will contain types and functions that do not expect the input to be a specific type. For example,
|
|
84
|
+
|
|
85
|
+
- `assertType()`, `isType()`, and `testType()`
|
|
86
|
+
- Type filters and predicates such as `AnyType` or `IsArray`
|
|
87
|
+
|
|
88
|
+
It can also have types and functions for specific types if it is a common convention,
|
|
89
|
+
or the is no ambiguity, or for backwards compatibility purpose.
|
|
90
|
+
|
|
91
|
+
Other type specific utilities will be added under their respective `*Plus` namespaces such as `ArrayPlus.At` or `NumberPlus.Positive`.
|
|
92
|
+
|
|
93
|
+
### Update documentation
|
|
94
|
+
|
|
95
|
+
Each type and utility function in [type-plus] will be updated to include examples and tags to indicate its category and behavior.
|
|
96
|
+
|
|
97
|
+
Each tag has an associated icon:
|
|
98
|
+
|
|
99
|
+
- 👽 *alias*: Alias of another type
|
|
100
|
+
- 🚦 *assertion*: assertion function
|
|
101
|
+
- 🔢 *customizable*: the behavior of the type is customizable.
|
|
102
|
+
- 💀 *deprecated*: deprecated and will be removed soon
|
|
103
|
+
- 🌪️ *filter*: a.k.a. *parse* These types perform some kind of test. If the input passes the test, the input is returned. Otherwise, it returns `never`
|
|
104
|
+
- 🛡️ *guard*: type guard function
|
|
105
|
+
- 💥 *immediate*: the effect of the type can be observed immediately during development
|
|
106
|
+
- ㊙️ *internal*: the type is internal and should not be used directly
|
|
107
|
+
- 🏃 *runtime*: the function has runtime effect
|
|
108
|
+
- 🩳 *shortcut*: Shortcut or convenient types
|
|
109
|
+
- 🧪 *testing*: the type or function are designed for test
|
|
110
|
+
- ⚗️ *transform*: these types transforms the input to another category
|
|
111
|
+
- 🧰 *type util*: types for building types
|
|
112
|
+
- 🦴 *utilities*: provide various functionalities
|
|
113
|
+
- 🎭 *predicate*: a.k.a. *predicate* or *logical*. These types perform some kind of test. If the input passes the test, it returns `true` or `false`
|
|
114
|
+
|
|
115
|
+
## Assertion Function
|
|
116
|
+
|
|
117
|
+
[Assertion Functions][assertion_functions] are special functions that asserts certain conditions of your program.
|
|
118
|
+
|
|
119
|
+
It is introduced in TypeScript 3.7.
|
|
120
|
+
|
|
121
|
+
They throw an error if the condition is not met, and return nothing otherwise.
|
|
122
|
+
|
|
123
|
+
These assertion functions are typically used in runtime,
|
|
124
|
+
so that that type of the value can be narrowed down.
|
|
125
|
+
|
|
126
|
+
### assertType
|
|
127
|
+
|
|
128
|
+
[`assertType`](./src/assertion/assert_type.ts) provides a generic assertion function,
|
|
129
|
+
as well as many assertion functions for builtin types.
|
|
130
|
+
|
|
131
|
+
> [`assertType<T>(subject)`](./src/assertion/readme.md#asserttype)
|
|
132
|
+
|
|
133
|
+
💀 deprecated. Use `assertType.as()` instead.
|
|
134
|
+
|
|
135
|
+
`assertType<T>(subject, validator)`:
|
|
136
|
+
|
|
137
|
+
🚦`assertion`: assert the `subject` is type `T` with the specified `validator`.
|
|
138
|
+
|
|
139
|
+
If `subject` fails the assertion,
|
|
140
|
+
a standard `TypeError` will be thrown and provide better error info.
|
|
141
|
+
For example:
|
|
142
|
+
|
|
143
|
+
```ts
|
|
144
|
+
const s: unknown = 1
|
|
145
|
+
|
|
146
|
+
// TypeError: subject fails to satisfy s => typeof s === 'boolean'
|
|
147
|
+
assertType<boolean>(s, s => typeof s === 'boolean')
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
The message beautification is provided by [`tersify`](https://github.com/unional/tersify).
|
|
151
|
+
|
|
152
|
+
> [`assertType.isUndefined()`](./src/assertion/readme.md#asserttype)
|
|
153
|
+
|
|
154
|
+
🚦`assertion`: assert the `subject` is `undefined`.
|
|
155
|
+
|
|
156
|
+
> [`assertType.noUndefined()`](./src/assertion/readme.md#asserttype)
|
|
157
|
+
|
|
158
|
+
🚦`assertion`: assert the `subject` is not `undefined`.
|
|
159
|
+
|
|
160
|
+
> [`assertType.isNull()`](./src/assertion/readme.md#asserttype)
|
|
161
|
+
|
|
162
|
+
🚦`assertion`: assert the `subject` is `null`.
|
|
163
|
+
|
|
164
|
+
> [`assertType.noNull()`](./src/assertion/readme.md#asserttype)
|
|
165
|
+
|
|
166
|
+
🚦`assertion`: assert the `subject` is not `null`.
|
|
167
|
+
|
|
168
|
+
> [`assertType.isNumber()`](./src/assertion/readme.md#asserttype)
|
|
169
|
+
|
|
170
|
+
🚦`assertion`: assert the `subject` is `number`.
|
|
171
|
+
|
|
172
|
+
> [`assertType.noNumber()`](./src/assertion/readme.md#asserttype)
|
|
173
|
+
|
|
174
|
+
🚦`assertion`: assert the `subject` is not `number`.
|
|
175
|
+
|
|
176
|
+
> [`assertType.isBoolean()`](./src/assertion/readme.md#asserttype)
|
|
177
|
+
|
|
178
|
+
🚦`assertion`: assert the `subject` is `boolean`.
|
|
179
|
+
|
|
180
|
+
> [`assertType.noBoolean()`](./src/assertion/readme.md#asserttype)
|
|
181
|
+
|
|
182
|
+
🚦`assertion`: assert the `subject` is not `boolean`.
|
|
183
|
+
|
|
184
|
+
> [`assertType.isTrue()`](./src/assertion/readme.md#asserttype)
|
|
185
|
+
|
|
186
|
+
🚦`assertion`: assert the `subject` is `true`.
|
|
187
|
+
|
|
188
|
+
> [`assertType.noTrue()`](./src/assertion/readme.md#asserttype)
|
|
189
|
+
|
|
190
|
+
🚦`assertion`: assert the `subject` is not `true`.
|
|
191
|
+
|
|
192
|
+
> [`assertType.isFalse()`](./src/assertion/readme.md#asserttype)
|
|
193
|
+
|
|
194
|
+
🚦`assertion`: assert the `subject` is `false`.
|
|
195
|
+
|
|
196
|
+
> [`assertType.noFalse()`](./src/assertion/readme.md#asserttype)
|
|
197
|
+
|
|
198
|
+
🚦`assertion`: assert the `subject` is not `false`.
|
|
199
|
+
|
|
200
|
+
> [`assertType.isString()`](./src/assertion/readme.md#asserttype)
|
|
201
|
+
|
|
202
|
+
🚦`assertion`: assert the `subject` is `string`.
|
|
203
|
+
|
|
204
|
+
> [`assertType.noString()`](./src/assertion/readme.md#asserttype)
|
|
205
|
+
|
|
206
|
+
🚦`assertion`: assert the `subject` is not `string`.
|
|
207
|
+
|
|
208
|
+
> [`assertType.isFunction()`](./src/assertion/readme.md#asserttype)
|
|
209
|
+
|
|
210
|
+
🚦`assertion`: assert the `subject` is `function`.
|
|
211
|
+
|
|
212
|
+
> [`assertType.noFunction()`](./src/assertion/readme.md#asserttype)
|
|
213
|
+
|
|
214
|
+
🚦`assertion`: assert the `subject` is not `function`.
|
|
215
|
+
|
|
216
|
+
> [`assertType.isError()`](./src/assertion/readme.md#asserttype)
|
|
217
|
+
|
|
218
|
+
🚦`assertion`: assert the `subject` is an `Error`.
|
|
219
|
+
|
|
220
|
+
> [`assertType.noError()`](./src/assertion/readme.md#asserttype)
|
|
221
|
+
|
|
222
|
+
🚦`assertion`: assert the `subject` is not an `Error`.
|
|
223
|
+
|
|
224
|
+
> [`assertType.isConstructor()`](./src/assertion/readme.md#asserttype)
|
|
225
|
+
|
|
226
|
+
💀 deprecated. It does not work in all cases.
|
|
227
|
+
|
|
228
|
+
It passes for function that can be called with `new`.
|
|
229
|
+
If the subject is an arrow function, it can still return true after compilation.
|
|
230
|
+
|
|
231
|
+
> [`assertType.isNever()`](./src/assertion/readme.md#asserttype)
|
|
232
|
+
|
|
233
|
+
🚦`assertion`: assert the `subject` is `never`.
|
|
234
|
+
|
|
235
|
+
> [`assertType.custom()`](./src/assertion/readme.md#asserttype)
|
|
236
|
+
|
|
237
|
+
🚦`assertion`: creates a custom assertion function.
|
|
238
|
+
|
|
239
|
+
Using it to create a custom assertion function that provides better error messages.
|
|
240
|
+
|
|
241
|
+
The message beautification is provided by [`tersify`](https://github.com/unional/tersify).
|
|
242
|
+
|
|
243
|
+
> [`assertType.as<T>()`](./src/assertion/readme.md#asserttype)
|
|
244
|
+
|
|
245
|
+
🚦`assertion`: assert the `subject` as `T` without validator.
|
|
246
|
+
|
|
247
|
+
This works similar to manual assertion `;(subject as T)`
|
|
248
|
+
|
|
249
|
+
## Type Guard
|
|
250
|
+
|
|
251
|
+
[User-defined type guard functions][type_guard] is a function which its return type is specified as `x is T`.
|
|
252
|
+
|
|
253
|
+
> [`isType()`](./src/type-guard/readme.md#istype)
|
|
254
|
+
|
|
255
|
+
🛡️ `guard`: a generic type guard function
|
|
256
|
+
|
|
257
|
+
> [`isType.t()`](./src/type-guard/readme.md#istype)
|
|
258
|
+
|
|
259
|
+
💀 `deprecated`: use `testType.true()` instead.
|
|
260
|
+
|
|
261
|
+
> [`isType.f()`](./src/type-guard/readme.md#istype)
|
|
262
|
+
|
|
263
|
+
💀 `deprecated`: use `testType.false()` instead.
|
|
264
|
+
|
|
265
|
+
> [`isType.never()`](./src/type-guard/readme.md#istype)
|
|
266
|
+
|
|
267
|
+
💀 `deprecated`: use `testType.never()` instead.
|
|
268
|
+
|
|
269
|
+
> [`isType.equal()`](./src/type-guard/readme.md#istype)
|
|
270
|
+
|
|
271
|
+
💀 `deprecated`: use `testType.equal()` instead.
|
|
272
|
+
|
|
273
|
+
## Type Utilities
|
|
274
|
+
|
|
275
|
+
> `Equal<A, B, Then = true, Else = false>`
|
|
276
|
+
|
|
277
|
+
💀 deprecated. use `IsEqual` instead. This will be converted to a ↪️ `parse`.
|
|
278
|
+
|
|
279
|
+
> `IsEqual<A, B, Then = true, Else = false>`
|
|
280
|
+
|
|
281
|
+
⭕ `predicate`: if `A` and `B` are the same.
|
|
282
|
+
|
|
283
|
+
> `NotEqual<A, B, Then = true, Else = false>`
|
|
284
|
+
|
|
285
|
+
💀 deprecated. use `IsNotEqual` instead. This will be converted to a ↪️ `parse`.
|
|
286
|
+
|
|
287
|
+
> `IsNotEqual<A, B, Then = true, Else = false>`:
|
|
288
|
+
|
|
289
|
+
⭕ `predicate`: check if `A` and `B` are not the same.
|
|
290
|
+
|
|
291
|
+
> `Extendable<A, B, Then = A, Else = never>`
|
|
292
|
+
|
|
293
|
+
↪️ `parse`: check if `A` extends `B`.
|
|
294
|
+
|
|
295
|
+
> `IsExtend<A, B, Then = true, Else = false>`
|
|
296
|
+
|
|
297
|
+
⭕ `predicate`: check if `A` extends `B`.
|
|
298
|
+
|
|
299
|
+
> `NotExtendable<A, B, Then = A, Else = never>`:
|
|
300
|
+
|
|
301
|
+
↪️ `parse`: check if `A` not extends `B`.
|
|
302
|
+
|
|
303
|
+
> `IsNotExtend<A, B, Then = true, Else = false>`:
|
|
304
|
+
|
|
305
|
+
⭕ `predicate`: check if `A` not extends `B`.
|
|
306
|
+
|
|
307
|
+
> `IsAssign<A, B, Then = true, Else = false>`
|
|
308
|
+
|
|
309
|
+
💀 `deprecated`: use `CanAssign` instead.
|
|
310
|
+
|
|
311
|
+
> `CanAssign<A, B, Then = true, Else = false>`:
|
|
312
|
+
|
|
313
|
+
⭕ `predicate`: check can `A` assign to `B`.
|
|
314
|
+
|
|
315
|
+
A typical usage is using it with `assertType`:
|
|
316
|
+
|
|
317
|
+
```ts
|
|
318
|
+
assertType.isFalse(false as CanAssign<boolean, { a: string }>)
|
|
319
|
+
assertType.isTrue(true as CanAssign<{ a:string, b:number }, { a: string }>)
|
|
320
|
+
```
|
|
321
|
+
|
|
322
|
+
> `StrictCanAssign<A, B, Then = true, Else = false>`
|
|
323
|
+
|
|
324
|
+
⭕ `predicate`: can `A` strictly assign to `B`
|
|
325
|
+
|
|
326
|
+
When `A` is a union, all branches must be assignable to `B`.
|
|
327
|
+
|
|
328
|
+
```ts
|
|
329
|
+
StrictCanAssign<number | string, number> // false
|
|
330
|
+
StrictCanAssign<number | string, number | string> // true
|
|
331
|
+
```
|
|
332
|
+
|
|
333
|
+
> `canAssign<T>(): (subject) => true`
|
|
334
|
+
|
|
335
|
+
⭕💻 `predicate`, `compile-time`
|
|
336
|
+
|
|
337
|
+
Returns a compile-time validating function to ensure `subject` is assignable to `T`.
|
|
338
|
+
|
|
339
|
+
```ts
|
|
340
|
+
const isConfig = canAssign<{ a: string }>()
|
|
341
|
+
assertType.isTrue(isConfig({ a: 'a' }))
|
|
342
|
+
```
|
|
343
|
+
|
|
344
|
+
> `canAssign<T>(false): (subject) => false`:
|
|
345
|
+
|
|
346
|
+
⭕💻 `predicate`, `compile-time`
|
|
347
|
+
|
|
348
|
+
Returns a compile-time validating function to ensure `subject` is not assignable to `T`.
|
|
349
|
+
|
|
350
|
+
```ts
|
|
351
|
+
const notA = canAssign<{ a: string }>(false)
|
|
352
|
+
assertType.isTrue(notA({ a: 1 }))
|
|
353
|
+
|
|
354
|
+
notA({ a: '' }) // TypeScript complains
|
|
355
|
+
```
|
|
356
|
+
|
|
357
|
+
## Type Specific Utilities
|
|
358
|
+
|
|
359
|
+
[type-plus](./README.md) privides type checking utilities for every type.
|
|
360
|
+
|
|
361
|
+
Each type has at least 4 type checks.
|
|
362
|
+
Using `string` as an example, there are `StringType<T>`, `IsString<T>`, `NotStringType<T>`, and `IsNotString<T>`.
|
|
363
|
+
|
|
364
|
+
Some types will have more checks, such as `boolean` has `StrictBooleanType<T>`, `TrueType<T>`, `FalseType<T>`.
|
|
365
|
+
|
|
366
|
+
You can learn more in their respective sections:
|
|
367
|
+
|
|
368
|
+
- [any](./src/any/readme.md)
|
|
369
|
+
- [array](./src/array/readme.md)
|
|
370
|
+
- [bigint](./src/bigint/readme.md)
|
|
371
|
+
- [boolean](./src/boolean/readme.md)
|
|
372
|
+
- [function](./src/function/readme.md)
|
|
373
|
+
- [never](./src/never/readme.md)
|
|
374
|
+
- [null](./src/null/readme.md)
|
|
375
|
+
- [number](./src/number/readme.md)
|
|
376
|
+
- [object](./src/object/readme.md)
|
|
377
|
+
- [string](./src/string/readme.md)
|
|
378
|
+
- [symbol](./src/symbol/readme.md)
|
|
379
|
+
- [tuple](./src/tuple/readme.md)
|
|
380
|
+
- [undefined](./src/undefined/readme.md)
|
|
381
|
+
- [unknown](./src/unknown/readme.md)
|
|
382
|
+
- [void](./src/void/readme.md)
|
|
383
|
+
- [mix types](./src/mix-types/readme.md)
|
|
384
|
+
|
|
385
|
+
### [any](./src/any/readme.md)
|
|
386
|
+
|
|
387
|
+
- [`AnyType`](./src/any/readme.md#anytype)
|
|
388
|
+
- [`IsAny`](./src/any/readme.md#isany)
|
|
389
|
+
- [`NotAnyType`](./src/any/readme.md#notanytype)
|
|
390
|
+
- [`IsNotAny`](./src/any/readme.md#isnotany)
|
|
391
|
+
- [`AnyOrNeverType`](./src/mix_types/readme.md#anyornevertype)
|
|
392
|
+
- [`IsAnyOrNever`](./src/mix_types/readme.md#isanyornever)
|
|
393
|
+
|
|
394
|
+
### [Array](./src/array/readme.md)
|
|
395
|
+
|
|
396
|
+
- 🌪️[`ArrayType`](./src/array/readme.md#arraytype): Filter `T` to ensure it is an array, excluding tuple.
|
|
397
|
+
- 🎭[`IsArray`](./src/array/readme.md#isarray): Validate that `T` is an array, excluding tuple.
|
|
398
|
+
- 🌪️[`NotArrayType`](./src/array/readme.md#notarraytype): Filter `T` to ensure it is not an array, excluding tuple.
|
|
399
|
+
- 🎭[`IsNotArrayType`](./src/array/readme.md#isnotarraytype): Validate that `T` is not an array, excluding tuple.
|
|
400
|
+
- 🦴[`At`](./src/array/readme.md#at): Gets the type of the array or tuple at positive or negative index `N`.
|
|
401
|
+
- 🦴💀[`Concat`](./src/array/readme.md#concat): Concats two arrays or tuples.
|
|
402
|
+
- 🦴🔢[`FindFirst`](./src/array/readme.md#findfirst): Find the first type in the array or tuple `A` that matches `Criteria`.
|
|
403
|
+
- [`FindLast`](./src/array/readme.md#findlast)
|
|
404
|
+
- [`Some`](./src/array/readme.md#some)
|
|
405
|
+
- ⚗️[`Filter`](./src/array/readme.md#filter): Filter the array or tuple `A`, keeping entries satisfying `Criteria`.
|
|
406
|
+
- ⚗️👽[`KeepMatch`](./src/array/readme.md#keepmatch): Keeps entries satisfying `Criteria` in array or tuple `A`.
|
|
407
|
+
- 🦴🔢[`Head`](./src/array/readme.md#head): Gets the first entry in the tuple or the type of array `T`.
|
|
408
|
+
- [`IntersectOfProps`](./src/array/readme.md#intersectofprops)
|
|
409
|
+
- [`MapToProp`](./src/array/readme.md#maptoprop)
|
|
410
|
+
- 🦴🔢[`Last`](./src/array/readme.md#last): Gets the last entry in the tuple or the type of array `T`.
|
|
411
|
+
- [`literalArray`](./src/array/readme.md#literalarray)
|
|
412
|
+
- [`PadStart`](./src/array/readme.md#padstart)
|
|
413
|
+
- [`reduceWhile`](./src/array/readme.md#reducewhile)
|
|
414
|
+
- [`Reverse`](./src/array/readme.md#reverse)
|
|
415
|
+
- [`PropUnion`](./src/array/readme.md#propunion)
|
|
416
|
+
- [`UnionOfProps`](./src/array/readme.md#unionofprops)
|
|
417
|
+
- [`UnionOfValues`](./src/array/readme.md#unionofvalues)
|
|
418
|
+
- [`ArrayPlus.At`](./src/array/readme.md#arrayplusat)
|
|
419
|
+
- [`ArrayPlus.Concat`](./src/array/readme.md#arrayplusconcat)
|
|
420
|
+
- [`ArrayPlus.Entries`](./src/array/readme.md#arrayplusentries)
|
|
421
|
+
- 🦴🔢[`ArrayPlus.Find`](./src/array/readme.md#arrayplusfind): Finds the type in array `A` that matches `Criteria`.
|
|
422
|
+
- [`ArrayPlus.FindLast`](./src/array/readme.md#arrayplusfindlast)
|
|
423
|
+
- [`ArrayPlus.Reverse`](./src/array/readme.md#arrayplusreverse)
|
|
424
|
+
- [`ArrayPlus.SplitAt`](./src/array/readme.md#arrayplussplitat)
|
|
425
|
+
- [`ArrayPlus.Some`](./src/array/readme.md#arrayplussome)
|
|
426
|
+
|
|
427
|
+
### [union](./src/union/readme.md)
|
|
428
|
+
|
|
429
|
+
- [`IsUnion`](./src/union//readme.md#isunion)
|
|
430
|
+
- [`UnionType`](./src/union/readme.md#uniontype)
|
|
431
|
+
|
|
432
|
+
### bigint
|
|
433
|
+
|
|
434
|
+
> [`BigintType<T, Then = T, Else = never>`](./src/bigint/bigint_type.ts#L15)
|
|
435
|
+
|
|
436
|
+
↪️ `parse`: if `T` is `bigint` or bigint literal.
|
|
437
|
+
|
|
438
|
+
> [`IsBigint<T, Then = true, Else = false>`](./src/bigint/bigint_type.ts#L33)
|
|
439
|
+
|
|
440
|
+
⭕ `predicate`: if `T` is `bigint` or bigint literal.
|
|
441
|
+
|
|
442
|
+
> [`NotBigintType<T, Then = T, Else = never>`](./src/bigint/bigint_type.ts#L47)
|
|
443
|
+
|
|
444
|
+
↪️ `parse`: if `T` is not `bigint` or bigint literal.
|
|
445
|
+
|
|
446
|
+
> [`IsNotBigInt<T, Then = true, Else = false>`](./src/bigint/bigint_type.ts#L61)
|
|
447
|
+
|
|
448
|
+
⭕ `predicate`: if `T` is not `bigint` or bigint literal.
|
|
449
|
+
|
|
450
|
+
> [`StrictBigintType<T, Then = T, Else = never>`](./src/bigint/strict_bigint_type.ts#L15)
|
|
451
|
+
|
|
452
|
+
↪️ `parse`: if `T` is exactly `bigint`.
|
|
453
|
+
|
|
454
|
+
> [`IsStrictBigint<T, Then = true, Else = false>`](./src/bigint/strict_bigint_type.ts#L33)
|
|
455
|
+
|
|
456
|
+
⭕ `predicate`: if `T` is exactly `bigint`.
|
|
457
|
+
|
|
458
|
+
> [`NotStrictBigintType<T, Then = T, Else = never>`](./src/bigint/strict_bigint_type.ts#L47)
|
|
459
|
+
|
|
460
|
+
↪️ `parse`: if `T` is not exactly `bigint`.
|
|
461
|
+
|
|
462
|
+
> [`IsNotStrictBigint<T, Then = true, Else = false>`](./src/bigint/strict_bigint_type.ts#L61)
|
|
463
|
+
|
|
464
|
+
⭕ `predicate`: if `T` is not exactly `bigint`.
|
|
465
|
+
|
|
466
|
+
### boolean
|
|
467
|
+
|
|
468
|
+
> [`BooleanType<T>`](./src/boolean/readme.md#type-checking)
|
|
469
|
+
|
|
470
|
+
↪️ `parse`: `T === boolean`.
|
|
471
|
+
|
|
472
|
+
> [`IsBoolean<T>`](./src/boolean/readme.md#type-checking)
|
|
473
|
+
|
|
474
|
+
⭕ `predicate`: `T === boolean`
|
|
475
|
+
|
|
476
|
+
> [`NotBooleanType<T>`](./src/boolean/readme.md#type-checking)
|
|
477
|
+
|
|
478
|
+
↪️ `parse`: `T !== boolean`.
|
|
479
|
+
|
|
480
|
+
> [`IsNotBoolean<T>`](./src/boolean/readme.md#type-checking)
|
|
481
|
+
|
|
482
|
+
⭕ `predicate`: `T !== boolean`
|
|
483
|
+
|
|
484
|
+
### function
|
|
485
|
+
|
|
486
|
+
> [`FunctionType<T>`](./src/function/readme.md#type-checking)
|
|
487
|
+
|
|
488
|
+
↪️ `parse`: `T === function`.
|
|
489
|
+
|
|
490
|
+
> [`IsFunction<T>`](./src/function/readme.md#type-checking)
|
|
491
|
+
|
|
492
|
+
⭕ `predicate`: `T === function`
|
|
493
|
+
|
|
494
|
+
> [`NotFunctionType<T>`](./src/function/readme.md#type-checking)
|
|
495
|
+
|
|
496
|
+
↪️ `parse`: `T !== function`.
|
|
497
|
+
|
|
498
|
+
> [`IsNotFunction<T>`](./src/function/readme.md#type-checking)
|
|
499
|
+
|
|
500
|
+
⭕ `predicate`: `T !== function`
|
|
501
|
+
|
|
502
|
+
> `AnyFunction<P, R>`
|
|
503
|
+
|
|
504
|
+
🔨 `utilities`: a generic type for any function
|
|
505
|
+
|
|
506
|
+
> `ExtractFunction<F>`
|
|
507
|
+
|
|
508
|
+
🔨 `utilities`: extract the function signature from a type `F`.
|
|
509
|
+
|
|
510
|
+
> `extractFunction(fn: F)`
|
|
511
|
+
|
|
512
|
+
🔨 `utilities`: adjust type of `fn` to its function signature only.
|
|
513
|
+
|
|
514
|
+
> `inspect<T>(value: T, inspector?: (v: T) => void)`
|
|
515
|
+
|
|
516
|
+
🔨 `utilities`: inspect a value and return it. Inspector defaults to `console.dir()`
|
|
517
|
+
|
|
518
|
+
### never
|
|
519
|
+
|
|
520
|
+
> [`NeverType<T>`](./src/never/readme.md#type-checking)
|
|
521
|
+
|
|
522
|
+
↪️ `parse`: `T === never`.
|
|
523
|
+
|
|
524
|
+
> [`IsNever<T>`](./src/never/readme.md#type-checking)
|
|
525
|
+
|
|
526
|
+
⭕ `predicate`: `T === never`
|
|
527
|
+
|
|
528
|
+
> [`NotNeverType<T>`](./src/never/readme.md#type-checking)
|
|
529
|
+
|
|
530
|
+
↪️ `parse`: `T !== never`.
|
|
531
|
+
|
|
532
|
+
> [`IsNotNever<T>`](./src/never/readme.md#type-checking)
|
|
533
|
+
|
|
534
|
+
⭕ `predicate`: `T !== never`
|
|
535
|
+
|
|
536
|
+
### null
|
|
537
|
+
|
|
538
|
+
> [`NullType<T>`](./src/null/readme.md#type-checking)
|
|
539
|
+
|
|
540
|
+
↪️ `parse`: `T === null`.
|
|
541
|
+
|
|
542
|
+
> [`IsNull<T>`](./src/null/readme.md#type-checking)
|
|
543
|
+
|
|
544
|
+
⭕ `predicate`: `T === null`
|
|
545
|
+
|
|
546
|
+
> [`NotNullType<T>`](./src/null/readme.md#type-checking)
|
|
547
|
+
|
|
548
|
+
↪️ `parse`: `T !== null`.
|
|
549
|
+
|
|
550
|
+
> [`IsNotNull<T>`](./src/null/readme.md#type-checking)
|
|
551
|
+
|
|
552
|
+
⭕ `predicate`: `T !== null`
|
|
553
|
+
|
|
554
|
+
### number
|
|
555
|
+
|
|
556
|
+
> [`NumberType<T, Then = N, Else = never>`](./src/number/number_type.ts#L14)
|
|
557
|
+
|
|
558
|
+
↪️ `parse`: is the type `T` `number`.
|
|
559
|
+
|
|
560
|
+
> [`IsNumber<T, Then = true, Else = false>`](./src/number/number_type.ts#L27)
|
|
561
|
+
|
|
562
|
+
⭕ `predicate`: is the type `T` `number`.
|
|
563
|
+
|
|
564
|
+
> [`NotNumberType<T, Then = T, Else = never>`](./src/number/number_type.ts#L40)
|
|
565
|
+
|
|
566
|
+
↪️ `parse`: is the type `T` not `number`.
|
|
567
|
+
|
|
568
|
+
> [`IsNotNumber<T, Then = true, Else = false>`](./src/number/number_type.ts#L53)
|
|
569
|
+
|
|
570
|
+
⭕ `predicate`: is the type `T` not `number`.
|
|
571
|
+
|
|
572
|
+
> [`StrictNumberType<T, Then = N, Else = never>`](./src/number/strict_number_type.ts#L19)
|
|
573
|
+
|
|
574
|
+
↪️ `parse`: is the type `T` exactly `number`.
|
|
575
|
+
|
|
576
|
+
> [`IsStrictNumber<T, Then = true, Else = false>`](./src/number/strict_number_type.ts#L41)
|
|
577
|
+
|
|
578
|
+
⭕ `predicate`: is the type `T` exactly `number`.
|
|
579
|
+
|
|
580
|
+
> [`NotStrictNumberType<T, Then = T, Else = never>`](./src/number/strict_number_type.ts#L55)
|
|
581
|
+
|
|
582
|
+
↪️ `parse`: is the type `T` not exactly `number`.
|
|
583
|
+
|
|
584
|
+
> [`IsNotStrictNumber<T, Then = true, Else = false>`](./src/number/strict_number_type.ts#L69)
|
|
585
|
+
|
|
586
|
+
⭕ `predicate`: is the type `T` not exactly `number`.
|
|
587
|
+
|
|
588
|
+
### numeric
|
|
589
|
+
|
|
590
|
+
> [`Numeric`](./src/numeric/numeric_type.ts#L4)
|
|
591
|
+
|
|
592
|
+
📘 `definition`: `number | bigint`.
|
|
593
|
+
|
|
594
|
+
> [`Zero`](ts/numeric_plus/numeric_type.ts#L9)
|
|
595
|
+
|
|
596
|
+
📘 `definition`: `0 | 0n`
|
|
597
|
+
|
|
598
|
+
> [`Integer<N, Then = N, Else = never>`](./src/numeric/integer.ts#L15)
|
|
599
|
+
|
|
600
|
+
↪️ `parse`: is integer.
|
|
601
|
+
|
|
602
|
+
> [`IsInteger<N, Then = true, Else = false>`](./src/numeric/integer.ts#L32)
|
|
603
|
+
|
|
604
|
+
⭕ `predicate`: is integer.
|
|
605
|
+
|
|
606
|
+
> [`NotInteger<N, Then = N, Else = never>`](./src/numeric/integer.ts#L45)
|
|
607
|
+
|
|
608
|
+
↪️ `parse`: is not integer.
|
|
609
|
+
|
|
610
|
+
> [`IsNotInteger<N, Then = true, Else = false>`](./src/numeric/integer.ts#L60)
|
|
611
|
+
|
|
612
|
+
⭕ `predicate`: is not integer.
|
|
613
|
+
|
|
614
|
+
> [`IsWhole<N, Then = true, Else = false>`](./src/numeric/integer.ts#L75)
|
|
615
|
+
|
|
616
|
+
💀⭕ `deprecated`, `predicate`: is integer. Use `IsInteger` instead.
|
|
617
|
+
|
|
618
|
+
> [`Negative<N, Then = N, Else = never>`](./src/numeric/negative.ts#L19)
|
|
619
|
+
|
|
620
|
+
↪️ `parse`: is negative.
|
|
621
|
+
|
|
622
|
+
> [`IsNegative<N, Then = true, Else = false>`](./src/numeric/negative.ts#L53)
|
|
623
|
+
|
|
624
|
+
⭕ `predicate`: is negative.
|
|
625
|
+
|
|
626
|
+
> [`NonNegative<N, Then = N, Else = never>`](./src/numeric/negative.ts#L69)
|
|
627
|
+
|
|
628
|
+
↪️ `parse`: is not negative.
|
|
629
|
+
|
|
630
|
+
> [`IsNonNegative<N, Then = N, Else = never>`](./src/numeric/negative.ts#L101)
|
|
631
|
+
|
|
632
|
+
⭕ `predicate`: is not negative.
|
|
633
|
+
|
|
634
|
+
> [`Positive<N, Then = N, Else = never>`](./src/numeric/positive.ts#15)
|
|
635
|
+
|
|
636
|
+
↪️ `parse`: is positive.
|
|
637
|
+
|
|
638
|
+
> [`IsPositive<N, Then = true, Else = false>`](./src/numeric/positive.ts#L36)
|
|
639
|
+
|
|
640
|
+
⭕ `predicate`: is positive.
|
|
641
|
+
|
|
642
|
+
> [`NotPositive<N, Then = N, Else = never>`](./src/numeric/positive.ts#48)
|
|
643
|
+
|
|
644
|
+
↪️ `parse`: is not positive.
|
|
645
|
+
|
|
646
|
+
> [`IsNotPositive<N, Then = true, Else = false>`](./src/numeric/positive.ts#L60)
|
|
647
|
+
|
|
648
|
+
⭕ `predicate`: is not positive.
|
|
649
|
+
|
|
650
|
+
### object
|
|
651
|
+
|
|
652
|
+
> `filterKey()`
|
|
653
|
+
|
|
654
|
+
🔨 `utilities`: type adjusted filter by key.
|
|
655
|
+
|
|
656
|
+
> `findKey()`
|
|
657
|
+
|
|
658
|
+
🔨 `utilities`: type adjusted find by key.
|
|
659
|
+
|
|
660
|
+
> `forEachKey()`
|
|
661
|
+
|
|
662
|
+
🔨 `utilities`: type adjusted for each by key.
|
|
663
|
+
|
|
664
|
+
> `HasKey<T, K>`
|
|
665
|
+
|
|
666
|
+
🔨 `utilities`: predicate type checking `T` has key `K`.
|
|
667
|
+
|
|
668
|
+
> `hasKey()`
|
|
669
|
+
|
|
670
|
+
🔨 `utilities`: function of `HasKey`.
|
|
671
|
+
|
|
672
|
+
> `IsRecord<T>`
|
|
673
|
+
|
|
674
|
+
🔨 `utilities`: `logical` predicate for `Record`.
|
|
675
|
+
|
|
676
|
+
> `KeysWithDiffTypes<A, B>`
|
|
677
|
+
|
|
678
|
+
🔨 `utilities`: gets the keys common in `A` and `B` but with different value type.
|
|
679
|
+
|
|
680
|
+
> `mapKey()`
|
|
681
|
+
|
|
682
|
+
🔨 `utilities`: type adjusted map by key.
|
|
683
|
+
|
|
684
|
+
> `RecordValue<R>`
|
|
685
|
+
|
|
686
|
+
🔨 `utilities`: gets the value type `T`from `Record<any, T>`
|
|
687
|
+
|
|
688
|
+
[video](https://www.youtube.com/watch?v=1J7xK6FUqPw).
|
|
689
|
+
|
|
690
|
+
> `reduceByKey()`
|
|
691
|
+
|
|
692
|
+
🔨 `utilities`: type adjusted reduce by key.
|
|
693
|
+
|
|
694
|
+
> `someKey()`
|
|
695
|
+
|
|
696
|
+
🔨 `utilities`: type adjusted some by key.
|
|
697
|
+
|
|
698
|
+
> `SpreadRecord<A, B>`
|
|
699
|
+
|
|
700
|
+
🔨 `utilities`: type for `{...a, ...b}` when both `a` and `b` are `Record`\
|
|
701
|
+
for array, just do `[...A, ...B]`.
|
|
702
|
+
|
|
703
|
+
### Promise
|
|
704
|
+
|
|
705
|
+
> `AwaitedProp<T, V>`
|
|
706
|
+
|
|
707
|
+
🔨 `utilities`: `Awaited` on specified props `P` in `T`.
|
|
708
|
+
|
|
709
|
+
> `isPromise<R>(subject: any)`
|
|
710
|
+
|
|
711
|
+
🔨 `utilities`: `isPromise()` type guard.
|
|
712
|
+
|
|
713
|
+
> `MaybePromise<T>`
|
|
714
|
+
|
|
715
|
+
🔨 `utilities`: Alias of `T | Promise<T>`.
|
|
716
|
+
|
|
717
|
+
> `PromiseValue<P>`
|
|
718
|
+
|
|
719
|
+
🔨 `utilities`: Gets the type within the Promise.
|
|
720
|
+
|
|
721
|
+
> `PromiseValueMerge<P1, P2, ...P9>`
|
|
722
|
+
|
|
723
|
+
🔨 `utilities`: Merge the values of multiple promises.
|
|
724
|
+
|
|
725
|
+
> `mapSeries()`
|
|
726
|
+
|
|
727
|
+
🔨 `utilities`: Similar to `bluebird.mapSeries()` but works with `async`/`await`.
|
|
728
|
+
|
|
729
|
+
> `transformMaybePromise(value, transformer)`
|
|
730
|
+
|
|
731
|
+
🔨 `utilities`: Apply the `transformer` to the `value`.\
|
|
732
|
+
It is also exported under `MaybePromise.transform()`.
|
|
733
|
+
|
|
734
|
+
### string
|
|
735
|
+
|
|
736
|
+
> [`StringType<T>`](ts/string/readme.md#type-checking)
|
|
737
|
+
|
|
738
|
+
↪️ `parse`: is `string`.
|
|
739
|
+
|
|
740
|
+
> [`IsString<T>`](ts/string/readme.md#type-checking)
|
|
741
|
+
|
|
742
|
+
⭕ `predicate`: is `string`.
|
|
743
|
+
|
|
744
|
+
> [`NotStringType<T>`](ts/string/readme.md#type-checking)
|
|
745
|
+
|
|
746
|
+
↪️ `parse`: is not `string`.
|
|
747
|
+
|
|
748
|
+
> [`IsNotString<T>`](ts/string/readme.md#type-checking)
|
|
749
|
+
|
|
750
|
+
⭕ `predicate`: is not `string`.
|
|
751
|
+
|
|
752
|
+
### symbol
|
|
753
|
+
|
|
754
|
+
> [`SymbolType<T>`](ts/symbol/readme.md#type-checking)
|
|
755
|
+
|
|
756
|
+
↪️ `parse`: is `symbol`.
|
|
757
|
+
|
|
758
|
+
> [`IsSymbol<T>`](ts/symbol/readme.md#type-checking)
|
|
759
|
+
|
|
760
|
+
⭕ `predicate`: is `symbol`.
|
|
761
|
+
|
|
762
|
+
> [`NotSymbolType<T>`](ts/symbol/readme.md#type-checking)
|
|
763
|
+
|
|
764
|
+
↪️ `parse`: is not `symbol`.
|
|
765
|
+
|
|
766
|
+
> [`IsNotSymbol<T>`](ts/symbol/readme.md#type-checking)
|
|
767
|
+
|
|
768
|
+
⭕ `predicate`: is not `symbol`.
|
|
769
|
+
|
|
770
|
+
### tuple
|
|
771
|
+
|
|
772
|
+
- 🌪️ [`TupleType`](./src/tuple/readme.md#tupletype): Filter `T` to ensure it is a tuple, excluding array.
|
|
773
|
+
- 🎭 [`IsTuple`](./src/tuple/readme.md#istuple): Validate that `T` is a tuple, excluding array.
|
|
774
|
+
- 🌪️ [`NotTupleType`](./src/tuple/readme.md#nottupletype): Filter `T` to ensure it is not an tuple, excluding array.
|
|
775
|
+
- 🎭 [`IsNotTuple`](./src/tuple/readme.md#isnottupletype): Validate that `T` is not an tuple, excluding array.
|
|
776
|
+
- ⚗️🔢[`CommonPropKeys`](./src/tuple/readme.md#commonpropkeys): Gets the common property keys of the elements in tuple `T`.
|
|
777
|
+
- ⚗️💀`CommonKeys`: Deprecated. Please use `CommonPropKeys` instead.
|
|
778
|
+
- ⚗️🔢[`DropFirst`](./src/tuple/readme.md#dropfirst): Drops the first entry in the tuple`T`.
|
|
779
|
+
- ⚗️🔢[`DropLast`](./src/tuple/readme.md#droplast): Drops the last entry in the tuple`T`.
|
|
780
|
+
|
|
781
|
+
> `CreateTuple<L, T>`
|
|
782
|
+
|
|
783
|
+
🔨 `utilities`: creates `tuple<T>` with `L` number of elements.
|
|
784
|
+
|
|
785
|
+
> `drop(array, value)`
|
|
786
|
+
|
|
787
|
+
🔨 `utilities`: drop a particular value from an array.
|
|
788
|
+
|
|
789
|
+
> `DropMatch<A, Criteria>`
|
|
790
|
+
|
|
791
|
+
🔨 `utilities`: drops entries matching `Criteria` in array or tuple `A`.
|
|
792
|
+
|
|
793
|
+
> `DropUndefined<A>`
|
|
794
|
+
|
|
795
|
+
🔨 `utilities`: drop undefined entries from array of tuple `A`.
|
|
796
|
+
|
|
797
|
+
### undefined
|
|
798
|
+
|
|
799
|
+
> [`UndefinedType<T>`](./src/undefined/readme.md#type-checking)
|
|
800
|
+
|
|
801
|
+
↪️ `parse`: `T === undefined`.
|
|
802
|
+
|
|
803
|
+
> [`IsUndefined<T>`](./src/undefined/readme.md#type-checking)
|
|
804
|
+
|
|
805
|
+
⭕ `predicate`: `T === undefined`
|
|
806
|
+
|
|
807
|
+
> [`NotUndefinedType<T>`](./src/undefined/readme.md#type-checking)
|
|
808
|
+
|
|
809
|
+
↪️ `parse`: `T !== undefined`.
|
|
810
|
+
|
|
811
|
+
> [`IsNotUndefined<T>`](./src/undefined/readme.md#type-checking)
|
|
812
|
+
|
|
813
|
+
⭕ `predicate`: `T !== undefined`
|
|
814
|
+
|
|
815
|
+
### unknown
|
|
816
|
+
|
|
817
|
+
> [`UnknownType<T>`](./src/unknown/readme.md#type-checking)
|
|
818
|
+
|
|
819
|
+
↪️ `parse`: `T === unknown`.
|
|
820
|
+
|
|
821
|
+
> [`IsUnknown<T>`](./src/unknown/readme.md#type-checking)
|
|
822
|
+
|
|
823
|
+
⭕ `predicate`: `T === unknown`
|
|
824
|
+
|
|
825
|
+
> [`NotUnknownType<T>`](./src/unknown/readme.md#type-checking)
|
|
826
|
+
|
|
827
|
+
↪️ `parse`: `T !== unknown`.
|
|
828
|
+
|
|
829
|
+
> [`IsNotUnknown<T>`](./src/unknown/readme.md#type-checking)
|
|
830
|
+
|
|
831
|
+
⭕ `predicate`: `T !== unknown`
|
|
832
|
+
|
|
833
|
+
### void
|
|
834
|
+
|
|
835
|
+
> [`VoidType<T>`](./src/void/readme.md#type-checking)
|
|
836
|
+
|
|
837
|
+
↪️ `parse`: `T === void`.
|
|
838
|
+
|
|
839
|
+
> [`IsVoid<T>`](./src/void/readme.md#type-checking)
|
|
840
|
+
|
|
841
|
+
⭕ `predicate`: `T === void`
|
|
842
|
+
|
|
843
|
+
> [`NotVoidType<T>`](./src/void/readme.md#type-checking)
|
|
844
|
+
|
|
845
|
+
↪️ `parse`: `T !== void`.
|
|
846
|
+
|
|
847
|
+
> [`IsNotVoid<T>`](./src/void/readme.md#type-checking)
|
|
848
|
+
|
|
849
|
+
⭕ `predicate`: `T !== void`
|
|
850
|
+
|
|
851
|
+
## Testing Utilities
|
|
852
|
+
|
|
853
|
+
[type-plus](./README.md) privides some testing utilities to help you test your types.
|
|
854
|
+
|
|
855
|
+
One of the key utilities is [`testType`](./src/testing/readme.md#testtype).
|
|
856
|
+
|
|
857
|
+
```ts
|
|
858
|
+
import { testType } from 'type-plus'
|
|
859
|
+
|
|
860
|
+
testType.any<T>(true) // T is `any`
|
|
861
|
+
testType.equal<A, B>(true) // A is equal to B
|
|
862
|
+
testType.never<T>(false) // T is not `never`
|
|
863
|
+
```
|
|
864
|
+
|
|
865
|
+
You can learn more about them in the [docs](./src/testing/readme.md).
|
|
866
|
+
|
|
867
|
+
## Constant Types
|
|
868
|
+
|
|
869
|
+
> `KeyTypes`
|
|
870
|
+
|
|
871
|
+
📘 `definition`: type of all keys.
|
|
872
|
+
|
|
873
|
+
> `PrimitiveTypes`
|
|
874
|
+
|
|
875
|
+
📘 `definition`: all primitive types, including `Function`, `symbol`, and `bigint`.
|
|
876
|
+
|
|
877
|
+
> `ComposableTypes`
|
|
878
|
+
|
|
879
|
+
📘 `definition`: Types that can contain custom properties. i.e. `object`, `array`, `function`.
|
|
880
|
+
|
|
881
|
+
> `NonComposableTypes`
|
|
882
|
+
|
|
883
|
+
📘 `definition`: Types that cannot contain custom properties. i.e. not composable.
|
|
884
|
+
|
|
885
|
+
## JSON Support
|
|
886
|
+
|
|
887
|
+
> `JSONPrimitive`
|
|
888
|
+
|
|
889
|
+
📘 `definition`: primitive types valid in JSON
|
|
890
|
+
|
|
891
|
+
> `JSONObject`
|
|
892
|
+
|
|
893
|
+
📘 `definition`: JSON object
|
|
894
|
+
|
|
895
|
+
> `JSONArray`
|
|
896
|
+
|
|
897
|
+
📘 `definition`: JSON array
|
|
898
|
+
|
|
899
|
+
> `JSONTypes`
|
|
900
|
+
|
|
901
|
+
📘 `definition`: all JSON compatible types.
|
|
902
|
+
|
|
903
|
+
> `JSONTypes.get<T>(obj, ...props)`
|
|
904
|
+
|
|
905
|
+
🔨 `utilities`: get a cast value in JSON
|
|
906
|
+
|
|
907
|
+
```ts
|
|
908
|
+
import { JSONTypes } from 'type-plus'
|
|
909
|
+
|
|
910
|
+
const someJson: JSONTypes = { a: { b: ['z', { c: 'miku' }]}}
|
|
911
|
+
|
|
912
|
+
JSONTypes.get<string>(someJson, 'a', 'b', 1, 'c') // miku
|
|
913
|
+
```
|
|
914
|
+
|
|
915
|
+
## Type manipulation
|
|
916
|
+
|
|
917
|
+
> `ANotB<A, B>`
|
|
918
|
+
|
|
919
|
+
🔨 `utilities`: get object with properties in `A` and not in `B`, including properties with a different value type.
|
|
920
|
+
|
|
921
|
+
> `BNotA<A, B>`
|
|
922
|
+
|
|
923
|
+
🔨 `utilities`: flip of `ANotB`
|
|
924
|
+
|
|
925
|
+
> `as<T>(subject)`
|
|
926
|
+
|
|
927
|
+
🔨 `utilities`: assert `subject` as `T`. Avoid ASI issues such as `;(x as T).abc`
|
|
928
|
+
|
|
929
|
+
> `asAny(subject)`
|
|
930
|
+
|
|
931
|
+
🔨 `utilities`: assert `subject` as `any`. Avoid ASI issue such as `;(x as any).abc`
|
|
932
|
+
|
|
933
|
+
> `EitherAnd<A, B, [C, D]>`
|
|
934
|
+
|
|
935
|
+
💀🔨 `deprecated`,`utilities`: Renamed to `EitherOrBoth`. combines 2 to 4 types as `A | B | (A & B)`.
|
|
936
|
+
|
|
937
|
+
This is useful for combining options.
|
|
938
|
+
|
|
939
|
+
> `EitherOrBoth<A, B, [C, D]>`
|
|
940
|
+
|
|
941
|
+
🔨 `utilities`: combines 2 to 4 types as `A | B | (A & B)`.
|
|
942
|
+
|
|
943
|
+
This is useful for combining options [video](https://youtu.be/jBxx03NT4Ik).
|
|
944
|
+
|
|
945
|
+
> `Except<T, K>`
|
|
946
|
+
|
|
947
|
+
💀🔨 `deprecated`,`utilities`: same as `Omit<T, K>`.
|
|
948
|
+
|
|
949
|
+
> `ExcludePropType<T, U>`
|
|
950
|
+
|
|
951
|
+
🔨 `utilities`: excludes type `U` from properties in `T`.
|
|
952
|
+
|
|
953
|
+
> `KeyofOptional<T>`
|
|
954
|
+
|
|
955
|
+
🔨 `utilities`: `keyof` that works with `Record<any, any> | undefined`.
|
|
956
|
+
|
|
957
|
+
> `KnownKeys<T>`
|
|
958
|
+
|
|
959
|
+
🔨 `utilities`: extract known (defined) keys from type `T`.
|
|
960
|
+
|
|
961
|
+
> `LeftJoin<A, B>`
|
|
962
|
+
|
|
963
|
+
🔨 `utilities`: left join `A` with `B`
|
|
964
|
+
|
|
965
|
+
> `NonNull<T>`
|
|
966
|
+
|
|
967
|
+
🔨 `utilities`: remove `null`
|
|
968
|
+
|
|
969
|
+
> `NonNullable<T>` (built-in)
|
|
970
|
+
|
|
971
|
+
🔨 `utilities`: adjust the type not to nullable
|
|
972
|
+
|
|
973
|
+
> `NonUndefined<T>`
|
|
974
|
+
|
|
975
|
+
🔨 `utilities`: remove `undefined`
|
|
976
|
+
|
|
977
|
+
> `Omit<T, K>`
|
|
978
|
+
|
|
979
|
+
🔨 `utilities`: From `T`, pick a set of properties whose keys are not in the union `K`. This is the opposite of `Pick<T, K>`.
|
|
980
|
+
|
|
981
|
+
> `OptionalKeys<T>`
|
|
982
|
+
|
|
983
|
+
🔨 `utilities`: gets keys of optional properties in `T`.
|
|
984
|
+
|
|
985
|
+
> `PartialExcept<T, U>`
|
|
986
|
+
|
|
987
|
+
💀🔨 `deprecated`,`utilities`: same as `PartialOmit<T, U>`.
|
|
988
|
+
|
|
989
|
+
> `PartialOmit<T, U>`
|
|
990
|
+
|
|
991
|
+
🔨 `utilities`: makes the properties not specified in `U` becomes optional.
|
|
992
|
+
|
|
993
|
+
> `PartialPick<T, U>`
|
|
994
|
+
|
|
995
|
+
🔨 `utilities`: makes the properties specified in `U` becomes optional.
|
|
996
|
+
|
|
997
|
+
> `Pick<T, K>`
|
|
998
|
+
|
|
999
|
+
🔨 `utilities`: pick properties `K` from `T`. Works with unions.
|
|
1000
|
+
|
|
1001
|
+
> `RecursivePartial<T>`
|
|
1002
|
+
|
|
1003
|
+
🔨 `utilities`: make type `T` optional recursively.
|
|
1004
|
+
|
|
1005
|
+
> `RecursiveRequired<T>`
|
|
1006
|
+
|
|
1007
|
+
🔨 `utilities`: make type `T` required recursively.
|
|
1008
|
+
|
|
1009
|
+
> `ReplaceProperty<T, K, V>`
|
|
1010
|
+
|
|
1011
|
+
🔨 `utilities`: replace property `K` in `T` with `V`.
|
|
1012
|
+
|
|
1013
|
+
> `RequiredKeys<T>`
|
|
1014
|
+
|
|
1015
|
+
🔨 `utilities`: gets keys of required properties in `T`.
|
|
1016
|
+
|
|
1017
|
+
> `RequiredPick<T, U>`
|
|
1018
|
+
|
|
1019
|
+
🔨 `utilities`: makes the properties specified in `U` become required.
|
|
1020
|
+
|
|
1021
|
+
> `RequiredExcept<T, U>`
|
|
1022
|
+
|
|
1023
|
+
🔨 `utilities`: makes the properties not specified in `U` become required.
|
|
1024
|
+
|
|
1025
|
+
> `RecursiveIntersect<T, U>`
|
|
1026
|
+
|
|
1027
|
+
🔨 `utilities`: intersect type `U` onto `T` recursively.
|
|
1028
|
+
|
|
1029
|
+
> `ValueOf<T>`
|
|
1030
|
+
|
|
1031
|
+
🔨 `utilities`: type of the value of the properties of `T`.
|
|
1032
|
+
|
|
1033
|
+
> `Widen<T>`
|
|
1034
|
+
|
|
1035
|
+
🔨 `utilities`: widen literal types.
|
|
1036
|
+
|
|
1037
|
+
PropType
|
|
1038
|
+
|
|
1039
|
+
💀 ...no helper type for this. Just do `YourType['propName']`.
|
|
1040
|
+
|
|
1041
|
+
## Type Predicates
|
|
1042
|
+
|
|
1043
|
+
Type predicates are type alias that returns `true` or `false`.
|
|
1044
|
+
They can be used to compose complex types.
|
|
1045
|
+
|
|
1046
|
+
> `HasKey<T, K>`
|
|
1047
|
+
|
|
1048
|
+
🔨 `utilities`: predicate type checking `T` has key `K`.
|
|
1049
|
+
|
|
1050
|
+
> `IsAny<T>`
|
|
1051
|
+
|
|
1052
|
+
🔨 `utilities`: `T === any` (updated to impl: [expect-type]).
|
|
1053
|
+
|
|
1054
|
+
> `IsBoolean<T>`
|
|
1055
|
+
|
|
1056
|
+
🔨 `utilities`: check for `boolean`, but not for `true` nor `false`.
|
|
1057
|
+
|
|
1058
|
+
> `IsDisjoint<A, B>`
|
|
1059
|
+
|
|
1060
|
+
🔨 `utilities`: is `A` and `B` is a disjoint set.
|
|
1061
|
+
|
|
1062
|
+
> `IsEmptyObject<T>`
|
|
1063
|
+
|
|
1064
|
+
🔨 `utilities`: is `T === {}`.
|
|
1065
|
+
|
|
1066
|
+
> `IsLiteral<T>`
|
|
1067
|
+
|
|
1068
|
+
🔨 `utilities`: is `T` a literal type (literal string or number).
|
|
1069
|
+
|
|
1070
|
+
### Logical
|
|
1071
|
+
|
|
1072
|
+
> `If<Condition, Then = true, Else = false>`
|
|
1073
|
+
|
|
1074
|
+
🔨 `utilities`: if statement
|
|
1075
|
+
|
|
1076
|
+
> `And<A, B, Then = true, Else = false>`
|
|
1077
|
+
|
|
1078
|
+
🔨 `utilities`: logical `AND`
|
|
1079
|
+
|
|
1080
|
+
> `Or<A, B, Then = true, Else = false>`
|
|
1081
|
+
|
|
1082
|
+
🔨 `utilities`: logical `OR`
|
|
1083
|
+
|
|
1084
|
+
> `Xor<A, B, Then = true, Else = false>`
|
|
1085
|
+
|
|
1086
|
+
🔨 `utilities`: logical `XOR`
|
|
1087
|
+
|
|
1088
|
+
> `Not<X, Then = true, Else = false>`
|
|
1089
|
+
|
|
1090
|
+
🔨 `utilities`: logical `NOT`
|
|
1091
|
+
|
|
1092
|
+
Note that these types work correctly with the `boolean` type.
|
|
1093
|
+
e.g.:
|
|
1094
|
+
|
|
1095
|
+
```ts
|
|
1096
|
+
type R = And<boolean, true> // boolean
|
|
1097
|
+
type R = Not<boolean> // boolean`
|
|
1098
|
+
```
|
|
1099
|
+
|
|
1100
|
+
There is a problem with generic distribution: <https://github.com/microsoft/TypeScript/issues/41053>
|
|
1101
|
+
So you may encounter some weird behavior if your logic is complex.
|
|
1102
|
+
|
|
1103
|
+
## Math
|
|
1104
|
+
|
|
1105
|
+
The math types in `type-plus` works with most numeric types.
|
|
1106
|
+
|
|
1107
|
+
It works with `number` and `bigint`, positive and negative number, including floating point numbers.
|
|
1108
|
+
|
|
1109
|
+
It will cast the type between `number` and `bigint` if needed.
|
|
1110
|
+
|
|
1111
|
+
> `Abs<N, Fail = never>`
|
|
1112
|
+
|
|
1113
|
+
🔨 `utilities`: `Abs(N)`.
|
|
1114
|
+
|
|
1115
|
+
> `Max<A, B, Fail = never>`
|
|
1116
|
+
|
|
1117
|
+
🔨 `utilities`: `max(A, B)`
|
|
1118
|
+
|
|
1119
|
+
> `GreaterThan<A, B>`
|
|
1120
|
+
|
|
1121
|
+
🔨 `utilities`: `A > B`.
|
|
1122
|
+
|
|
1123
|
+
> `Add<A, B>`
|
|
1124
|
+
|
|
1125
|
+
🔨 `utilities`: `A + B`.
|
|
1126
|
+
|
|
1127
|
+
> `Subtract<A, B>`
|
|
1128
|
+
|
|
1129
|
+
🔨 `utilities`: `A > B`.
|
|
1130
|
+
|
|
1131
|
+
> `Increment<A>`
|
|
1132
|
+
|
|
1133
|
+
🔨 `utilities`: alias of `Add<A, 1>`.
|
|
1134
|
+
|
|
1135
|
+
> `Decrement<A>`
|
|
1136
|
+
|
|
1137
|
+
🔨 `utilities`: alias of `Subtract<A, 1>`.
|
|
1138
|
+
|
|
1139
|
+
> `Multiply<A, B`
|
|
1140
|
+
|
|
1141
|
+
🔨 `utilities`: `A * B`.
|
|
1142
|
+
|
|
1143
|
+
## Utility Functions
|
|
1144
|
+
|
|
1145
|
+
> `amend(subject)...`
|
|
1146
|
+
|
|
1147
|
+
🔨 `utilities`: amend subject as union or intersect of `T`.
|
|
1148
|
+
|
|
1149
|
+
> `facade(subject, ...props)`
|
|
1150
|
+
|
|
1151
|
+
🔨 `utilities`: create a facade of `subject`.
|
|
1152
|
+
|
|
1153
|
+
> `getField(subject, key, defaultValue)`
|
|
1154
|
+
|
|
1155
|
+
🔨 `utilities`: get a field from a subject. Works against nullable and optional subject.
|
|
1156
|
+
|
|
1157
|
+
> `hasKey()`
|
|
1158
|
+
|
|
1159
|
+
🔨 `utilities`: function of `HasKey`.
|
|
1160
|
+
|
|
1161
|
+
> `hasProperty(value, prop)`
|
|
1162
|
+
|
|
1163
|
+
🔨 `utilities`: assert `value` has property `prop`. This will pick the correct union type.
|
|
1164
|
+
|
|
1165
|
+
> `isConstructor(subject)`
|
|
1166
|
+
|
|
1167
|
+
🔨 `utilities`: type guard `subject` is a constructor.
|
|
1168
|
+
|
|
1169
|
+
> `isSystemError(code, err)`
|
|
1170
|
+
|
|
1171
|
+
🔨 `utilities`: type guard `err` with NodeJS error code.
|
|
1172
|
+
|
|
1173
|
+
> `omit(obj, ...props)`
|
|
1174
|
+
|
|
1175
|
+
🔨 `utilities`: omit properties from `obj`.
|
|
1176
|
+
|
|
1177
|
+
> `pick(obj, ...props)`
|
|
1178
|
+
|
|
1179
|
+
🔨 `utilities`: pick properties from `obj`.
|
|
1180
|
+
|
|
1181
|
+
> `record<K, V>(value?)`
|
|
1182
|
+
|
|
1183
|
+
🔨 `utilities`: create a `Record<K, V>` without extra object prototype.
|
|
1184
|
+
|
|
1185
|
+
> `record<R>(value?)`
|
|
1186
|
+
|
|
1187
|
+
🔨 `utilities`: create a record `R` (e.g. `{ a: number }`) without extra object prototype.
|
|
1188
|
+
|
|
1189
|
+
> `required(...)`
|
|
1190
|
+
|
|
1191
|
+
🔨 `utilities`: merge options and remove `Partial<T>`. From [`unpartial`](https://github.com/unional/unpartial)
|
|
1192
|
+
|
|
1193
|
+
> `requiredDeep(...)`
|
|
1194
|
+
|
|
1195
|
+
🔨 `utilities`: merge options deeply and remove `Partial<T>`. From [`unpartial`](https://github.com/unional/unpartial)
|
|
1196
|
+
|
|
1197
|
+
> `split(target, ...splitters)`
|
|
1198
|
+
|
|
1199
|
+
🔨 `utilities`: split one object into multiple objects.
|
|
1200
|
+
|
|
1201
|
+
> `stub<T>(value)`
|
|
1202
|
+
|
|
1203
|
+
🔨 `utilities`: stub a particular type `T`.
|
|
1204
|
+
|
|
1205
|
+
> `stub.build<T>(init?)`
|
|
1206
|
+
|
|
1207
|
+
🔨 `utilities`: build a stub for particular type `T`.
|
|
1208
|
+
|
|
1209
|
+
> `typeOverrideIncompatible<T>()`
|
|
1210
|
+
|
|
1211
|
+
🔨 `utilities`: override only the incompatible portion between two types.
|
|
1212
|
+
|
|
1213
|
+
```ts
|
|
1214
|
+
type A = {
|
|
1215
|
+
foo: boolean,
|
|
1216
|
+
bar: string,
|
|
1217
|
+
baz: string
|
|
1218
|
+
}
|
|
1219
|
+
|
|
1220
|
+
const overrider = typeOverrideIncompatible<A>()
|
|
1221
|
+
const source = {
|
|
1222
|
+
foo: 1,
|
|
1223
|
+
bar: 'bar',
|
|
1224
|
+
baz: 'baz'
|
|
1225
|
+
}
|
|
1226
|
+
|
|
1227
|
+
// only the `foo` property is available to override.
|
|
1228
|
+
overrider(source, { foo: !!source.foo })
|
|
1229
|
+
```
|
|
1230
|
+
|
|
1231
|
+
> `unpartial()`
|
|
1232
|
+
|
|
1233
|
+
🔨 `utilities`: merge options and remove `Partial<T>` values. From [`unpartial`](https://github.com/unional/unpartial)
|
|
1234
|
+
|
|
1235
|
+
> `context()`
|
|
1236
|
+
|
|
1237
|
+
🔨 `utilities`: a context builder.
|
|
1238
|
+
|
|
1239
|
+
This is useful to build context for functional programming.
|
|
1240
|
+
It is a sync version of the `AsyncContext` from [async-fp](https://unional/async-fp).
|
|
1241
|
+
|
|
1242
|
+
```ts
|
|
1243
|
+
import { context } from 'type-plus'
|
|
1244
|
+
|
|
1245
|
+
// { a: 1, b: 2 }
|
|
1246
|
+
const ctx = context({ a: 1 })
|
|
1247
|
+
.extend(c => ({ b: c.a + 1 }))
|
|
1248
|
+
.build()
|
|
1249
|
+
```
|
|
1250
|
+
|
|
1251
|
+
## Nominal Types
|
|
1252
|
+
|
|
1253
|
+
The TypeScript type system is structural.
|
|
1254
|
+
|
|
1255
|
+
In some cases, we want to express a type with nominal behavior.
|
|
1256
|
+
`type-plus` provides two kinds of nominal types: `Brand` and `Flavor`.
|
|
1257
|
+
|
|
1258
|
+
`Brand<B, T>`:
|
|
1259
|
+
|
|
1260
|
+
`brand(type, subject?)`:
|
|
1261
|
+
|
|
1262
|
+
Branded nominal type is the stronger nominal type of the two.
|
|
1263
|
+
It disallows unbranded type assigned to it:
|
|
1264
|
+
|
|
1265
|
+
```ts
|
|
1266
|
+
const a = brand('a', { a: 1 })
|
|
1267
|
+
const b = { a: 1 }
|
|
1268
|
+
a = b // error
|
|
1269
|
+
```
|
|
1270
|
+
|
|
1271
|
+
`subject` can be any type, from primitive to strings to objects.
|
|
1272
|
+
|
|
1273
|
+
`brand(type)`:
|
|
1274
|
+
|
|
1275
|
+
If you do not provide `subject`, `brand(type)` will return a brand creator,
|
|
1276
|
+
so that you can use it to create multiple branded values:
|
|
1277
|
+
|
|
1278
|
+
```ts
|
|
1279
|
+
const nike = brand('nike')
|
|
1280
|
+
const shirt = nike('shirt')
|
|
1281
|
+
const socks = nike('socks')
|
|
1282
|
+
```
|
|
1283
|
+
|
|
1284
|
+
`Flavor<F, T>`:
|
|
1285
|
+
|
|
1286
|
+
`flavor(type, subject?)`:
|
|
1287
|
+
|
|
1288
|
+
The key difference between `Flavor` and `Brand` is that
|
|
1289
|
+
unflavored type can be assigned to `Flavor`:
|
|
1290
|
+
|
|
1291
|
+
```ts
|
|
1292
|
+
let f = flavor('orange', 'soda')
|
|
1293
|
+
f = 'mist' // ok
|
|
1294
|
+
```
|
|
1295
|
+
|
|
1296
|
+
Also, `Brand` of the same name can be assigned to `Flavor`,
|
|
1297
|
+
but `Flavor` of the same name cannot be assigned to `Brand`.
|
|
1298
|
+
|
|
1299
|
+
`nominalMatch(a, b)`:
|
|
1300
|
+
|
|
1301
|
+
🔨 `utilities`: compare if the two values are nominally equal.
|
|
1302
|
+
|
|
1303
|
+
Works with both `Brand` and `Flavor`.
|
|
1304
|
+
|
|
1305
|
+
```ts
|
|
1306
|
+
const b1 = brand('x', 1)
|
|
1307
|
+
const b2 = brand('y', 1)
|
|
1308
|
+
|
|
1309
|
+
nominalMatch(b1, b2) // false
|
|
1310
|
+
```
|
|
1311
|
+
|
|
1312
|
+
## Functional Types
|
|
1313
|
+
|
|
1314
|
+
> `ChainFn<T>: T`
|
|
1315
|
+
|
|
1316
|
+
🔨 `utilities`: chain function that returns the input type.
|
|
1317
|
+
|
|
1318
|
+
> `compose(...fns): F`
|
|
1319
|
+
|
|
1320
|
+
🔨 `utilities`: compose functions
|
|
1321
|
+
|
|
1322
|
+
## Attribution
|
|
1323
|
+
|
|
1324
|
+
Some code in this library is created by other people in the TypeScript community.
|
|
1325
|
+
I'm merely adding them in and maybe making some adjustments.
|
|
1326
|
+
Whenever possible, I add attribution to the person who created those **codes** in the file.
|
|
1327
|
+
|
|
1328
|
+
## Useful Tips
|
|
1329
|
+
|
|
1330
|
+
> <https://github.com/microsoft/TypeScript/wiki/Performance>
|
|
1331
|
+
|
|
1332
|
+
## Similar projects
|
|
1333
|
+
|
|
1334
|
+
- [expect-type]: Compile-time tests for types
|
|
1335
|
+
- [hotscript]: Higher-order TypeScript
|
|
1336
|
+
- [spec.ts]: write tests for your types!
|
|
1337
|
+
- [ts-calc]: compute with typescript type system, part of [hotscript]
|
|
1338
|
+
- [ts-essentials]: all essential TypeScript types in one place.
|
|
1339
|
+
- [ts-expect]: Checks values in TypeScript match expectations.
|
|
1340
|
+
- [ts-toolbelt]: TypeScript's largest utility library.
|
|
1341
|
+
- [type-fest]: a collection of essential TypeScript types.
|
|
1342
|
+
- [type-zoo]: a modest type lib usable today.
|
|
1343
|
+
- [typepark]: a new type collection offering tuple manipulation and `Pipe`.
|
|
1344
|
+
- [typelevel-ts]: a type lib by [@gcanti], author of several FP libraries in TS.
|
|
1345
|
+
- [typical]: a playground of type-level operations for TypeScript.
|
|
1346
|
+
- [utility-types]: collection of utility types, complementing TypeScript build-in mapped types ans aliases.
|
|
1347
|
+
- [earl]: Ergonomic, modern and type-safe assertion library for TypeScript
|
|
1348
|
+
|
|
1349
|
+
[@gcanti]: https://github.com/gcanti
|
|
1350
|
+
[codecov_image]: https://codecov.io/gh/unional/type-plus/branch/master/graph/badge.svg
|
|
1351
|
+
[codecov_url]: https://codecov.io/gh/unional/type-plus
|
|
1352
|
+
[downloads_image]: https://img.shields.io/npm/dm/type-plus.svg?style=flat
|
|
1353
|
+
[earl]: https://github.com/l2beat/earl
|
|
1354
|
+
[expect-type]: https://github.com/mmkal/expect-type
|
|
1355
|
+
[github_action_url]: https://github.com/unional/type-plus/actions
|
|
1356
|
+
[github_release]: https://github.com/unional/type-plus/workflows/release/badge.svg
|
|
1357
|
+
[hotscript]: https://github.com/gvergnaud/hotscript
|
|
1358
|
+
[npm_image]: https://img.shields.io/npm/v/type-plus.svg?style=flat
|
|
1359
|
+
[npm_url]: https://npmjs.org/package/type-plus
|
|
1360
|
+
[spec.ts]: https://github.com/aleclarson/spec.ts
|
|
1361
|
+
[ts-calc]: https://github.com/ecyrbe/ts-calc
|
|
1362
|
+
[ts-essentials]: https://github.com/ts-essentials/ts-essentials
|
|
1363
|
+
[ts-expect]: https://github.com/TypeStrong/ts-expect
|
|
1364
|
+
[ts-toolbelt]: https://github.com/millsp/ts-toolbelt
|
|
1365
|
+
[type-fest]: https://github.com/sindresorhus/type-fest
|
|
1366
|
+
[type-plus]: https://github.com/unional/type-plus
|
|
1367
|
+
[type-zoo]: https://github.com/pelotom/type-zoo
|
|
1368
|
+
[typelevel-ts]: https://github.com/gcanti/typelevel-ts
|
|
1369
|
+
[typepark]: https://github.com/kgtkr/typepark
|
|
1370
|
+
[TypeScript]: https://www.typescriptlang.org
|
|
1371
|
+
[typical]: https://github.com/KiaraGrouwstra/typical
|
|
1372
|
+
[utility-types]: https://github.com/piotrwitek/utility-types
|
|
1373
|
+
[vscode_image]: https://img.shields.io/badge/vscode-ready-green.svg
|
|
1374
|
+
[vscode_url]: https://code.visualstudio.com/
|
|
1375
|
+
[assertion_functions]: https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-7.html#assertion-functions
|
|
1376
|
+
[type_guard]: https://www.typescriptlang.org/docs/handbook/2/narrowing.html#using-type-predicates
|