@rogolev/value 0.0.3 → 0.0.5
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/CHANGELOG.md +319 -1
- package/docs/classes/Expect/toBe.md +61 -0
- package/docs/classes/Expect/toBeArray.md +52 -0
- package/docs/classes/Expect/toBeAssoc.md +53 -0
- package/docs/classes/Expect/toBeBigInt.md +52 -0
- package/docs/classes/Expect/toBeBool.md +53 -0
- package/docs/classes/Expect/toBeBoolean.md +53 -0
- package/docs/classes/Expect/toBeChar.md +53 -0
- package/docs/classes/Expect/toBeClass.md +53 -0
- package/docs/classes/Expect/toBeFloat.md +53 -0
- package/docs/classes/Expect/toBeFunction.md +52 -0
- package/docs/classes/Expect/toBeInfinity.md +53 -0
- package/docs/classes/Expect/toBeInt.md +53 -0
- package/docs/classes/Expect/toBeInteger.md +53 -0
- package/docs/classes/Expect/toBeList.md +53 -0
- package/docs/classes/Expect/toBeNaN.md +53 -0
- package/docs/classes/Expect/toBeNull.md +51 -0
- package/docs/classes/Expect/toBeNumber.md +52 -0
- package/docs/classes/Expect/toBeNumeric.md +53 -0
- package/docs/classes/Expect/toBeObject.md +52 -0
- package/docs/classes/Expect/toBeScalar.md +53 -0
- package/docs/classes/Expect/toBeString.md +52 -0
- package/docs/classes/Expect/toBeSymbol.md +53 -0
- package/docs/classes/Expect/toBeUndefined.md +54 -0
- package/docs/classes/Expect/toEqual.md +69 -0
- package/docs/classes/Expect/toStrictEqual.md +70 -0
- package/docs/classes/Expect.md +87 -0
- package/docs/classes/Type/expectArray.md +63 -0
- package/docs/classes/Type/expectAssoc.md +65 -0
- package/docs/classes/Type/expectBigInt.md +63 -0
- package/docs/classes/Type/expectBool.md +65 -0
- package/docs/classes/Type/expectBoolean.md +65 -0
- package/docs/classes/Type/expectChar.md +63 -0
- package/docs/classes/Type/expectClass.md +63 -0
- package/docs/classes/Type/expectFloat.md +68 -0
- package/docs/classes/Type/expectFunction.md +63 -0
- package/docs/classes/Type/expectInfinity.md +65 -0
- package/docs/classes/Type/expectInt.md +64 -0
- package/docs/classes/Type/expectInteger.md +64 -0
- package/docs/classes/Type/expectList.md +63 -0
- package/docs/classes/Type/expectNaN.md +63 -0
- package/docs/classes/Type/expectNull.md +63 -0
- package/docs/classes/Type/expectNumber.md +63 -0
- package/docs/classes/Type/expectNumeric.md +63 -0
- package/docs/classes/Type/expectObject.md +64 -0
- package/docs/classes/Type/expectScalar.md +63 -0
- package/docs/classes/Type/expectString.md +63 -0
- package/docs/classes/Type/expectSymbol.md +63 -0
- package/docs/classes/Type/expectUndefined.md +63 -0
- package/docs/classes/Type.md +101 -2
- package/docs/classes.md +2 -1
- package/docs/helpers/array/array_chunk.md +80 -0
- package/docs/helpers/array/array_chunk_with_keys.md +81 -0
- package/docs/helpers/array/array_column.md +110 -0
- package/docs/helpers/array/array_combine.md +77 -0
- package/docs/helpers/array/array_count_values.md +71 -0
- package/docs/helpers/array/array_diff.md +97 -0
- package/docs/helpers/array/array_diff_assoc.md +81 -0
- package/docs/helpers/array/array_diff_key.md +81 -0
- package/docs/helpers/array/array_diff_uassoc.md +101 -0
- package/docs/helpers/array/array_diff_ukey.md +101 -0
- package/docs/helpers/array/array_fill.md +81 -0
- package/docs/helpers/array/array_fill_keys.md +73 -0
- package/docs/helpers/array/array_filter.md +79 -0
- package/docs/helpers/array/array_flip.md +70 -0
- package/docs/helpers/array/array_index_max.md +78 -0
- package/docs/helpers/array/array_index_min.md +78 -0
- package/docs/helpers/array/array_intersect.md +91 -0
- package/docs/helpers/array/array_intersect_assoc.md +91 -0
- package/docs/helpers/array/array_intersect_key.md +91 -0
- package/docs/helpers/array/array_intersect_uassoc.md +101 -0
- package/docs/helpers/array/array_intersect_ukey.md +101 -0
- package/docs/helpers/array/array_key_exists.md +73 -0
- package/docs/helpers/array/array_key_first.md +62 -0
- package/docs/helpers/array/array_key_last.md +62 -0
- package/docs/helpers/array/array_key_to_lower_case.md +57 -0
- package/docs/helpers/array/array_key_to_upper_case.md +57 -0
- package/docs/helpers/array/array_keys.md +62 -0
- package/docs/helpers/array/array_map.md +69 -0
- package/docs/helpers/array/array_merge.md +67 -0
- package/docs/helpers/array/array_merge_recursive.md +86 -0
- package/docs/helpers/array/array_pad.md +83 -0
- package/docs/helpers/array/array_pop.md +64 -0
- package/docs/helpers/array/array_product.md +62 -0
- package/docs/helpers/array/array_push.md +57 -0
- package/docs/helpers/array/array_rand.md +99 -0
- package/docs/helpers/array/array_reduce.md +77 -0
- package/docs/helpers/array/array_replace.md +85 -0
- package/docs/helpers/array/array_replace_recursive.md +87 -0
- package/docs/helpers/array/array_reverse.md +55 -0
- package/docs/helpers/array/array_search.md +74 -0
- package/docs/helpers/array/array_shift.md +64 -0
- package/docs/helpers/array/array_slice.md +65 -0
- package/docs/helpers/array/array_splice.md +103 -0
- package/docs/helpers/array/array_sum.md +55 -0
- package/docs/helpers/array/array_udiff.md +97 -0
- package/docs/helpers/array/array_udiff_assoc.md +101 -0
- package/docs/helpers/array/array_udiff_uassoc.md +88 -0
- package/docs/helpers/array/array_uintersect.md +101 -0
- package/docs/helpers/array/array_uintersect_assoc.md +102 -0
- package/docs/helpers/array/array_uintersect_uassoc.md +135 -0
- package/docs/helpers/array/array_unique.md +54 -0
- package/docs/helpers/array/array_unshift.md +58 -0
- package/docs/helpers/array/array_values.md +54 -0
- package/docs/helpers/array/array_walk.md +87 -0
- package/docs/helpers/array/array_walk_recursive.md +93 -0
- package/docs/helpers/array/count.md +54 -0
- package/docs/helpers/array/in_array.md +65 -0
- package/docs/helpers/array/natsort.md +60 -0
- package/docs/helpers/array/range.md +76 -0
- package/docs/helpers/array/shuffle.md +74 -0
- package/docs/helpers/array/sort.md +79 -0
- package/docs/helpers/expect.md +58 -0
- package/docs/helpers/expect_array.md +63 -0
- package/docs/helpers/expect_assoc.md +65 -0
- package/docs/helpers/expect_bigint.md +63 -0
- package/docs/helpers/expect_bool.md +65 -0
- package/docs/helpers/expect_boolean.md +65 -0
- package/docs/helpers/expect_char.md +63 -0
- package/docs/helpers/expect_class.md +63 -0
- package/docs/helpers/expect_float.md +65 -0
- package/docs/helpers/expect_function.md +63 -0
- package/docs/helpers/expect_infinity.md +65 -0
- package/docs/helpers/expect_int.md +65 -0
- package/docs/helpers/expect_integer.md +65 -0
- package/docs/helpers/expect_list.md +63 -0
- package/docs/helpers/expect_nan.md +63 -0
- package/docs/helpers/expect_null.md +63 -0
- package/docs/helpers/expect_number.md +63 -0
- package/docs/helpers/expect_numeric.md +63 -0
- package/docs/helpers/expect_object.md +64 -0
- package/docs/helpers/expect_scalar.md +63 -0
- package/docs/helpers/expect_string.md +63 -0
- package/docs/helpers/expect_symbol.md +63 -0
- package/docs/helpers/expect_undefined.md +64 -0
- package/docs/helpers/is_char.md +84 -0
- package/docs/helpers/is_equal.md +75 -0
- package/docs/helpers/string/is_digit_char.md +70 -0
- package/docs/helpers/string/is_whitespace_char.md +70 -0
- package/docs/helpers/string/natcompare.md +69 -0
- package/docs/helpers/string/natcompare_numeric.md +70 -0
- package/docs/helpers.md +172 -1
- package/index.mjs +91 -1
- package/package.json +1 -1
- package/prettier.config.mjs +2 -1
- package/src/classes/Expect.mjs +1445 -0
- package/src/classes/Type.mjs +2739 -1284
- package/src/constants.mjs +83 -14
- package/src/helpers/array/array_chunk.mjs +102 -0
- package/src/helpers/array/array_chunk_with_keys.mjs +102 -0
- package/src/helpers/array/array_column.mjs +131 -0
- package/src/helpers/array/array_combine.mjs +26 -0
- package/src/helpers/array/array_count_values.mjs +82 -0
- package/src/helpers/array/array_diff.mjs +77 -0
- package/src/helpers/array/array_diff_assoc.mjs +56 -0
- package/src/helpers/array/array_diff_key.mjs +56 -0
- package/src/helpers/array/array_diff_uassoc.mjs +76 -0
- package/src/helpers/array/array_diff_ukey.mjs +71 -0
- package/src/helpers/array/array_fill.mjs +108 -0
- package/src/helpers/array/array_fill_keys.mjs +90 -0
- package/src/helpers/array/array_filter.mjs +105 -0
- package/src/helpers/array/array_flip.mjs +58 -0
- package/src/helpers/array/array_index_max.mjs +82 -0
- package/src/helpers/array/array_index_min.mjs +82 -0
- package/src/helpers/array/array_intersect.mjs +71 -0
- package/src/helpers/array/array_intersect_assoc.mjs +67 -0
- package/src/helpers/array/array_intersect_key.mjs +67 -0
- package/src/helpers/array/array_intersect_uassoc.mjs +77 -0
- package/src/helpers/array/array_intersect_ukey.mjs +72 -0
- package/src/helpers/array/array_key_exists.mjs +83 -0
- package/src/helpers/array/array_key_first.mjs +73 -0
- package/src/helpers/array/array_key_last.mjs +74 -0
- package/src/helpers/array/array_key_to_lower_case.mjs +71 -0
- package/src/helpers/array/array_key_to_upper_case.mjs +71 -0
- package/src/helpers/array/array_keys.mjs +65 -0
- package/src/helpers/array/array_map.mjs +84 -0
- package/src/helpers/array/array_merge.mjs +95 -0
- package/src/helpers/array/array_merge_recursive.mjs +153 -0
- package/src/helpers/array/array_pad.mjs +105 -0
- package/src/helpers/array/array_pop.mjs +82 -0
- package/src/helpers/array/array_product.mjs +67 -0
- package/src/helpers/array/array_push.mjs +75 -0
- package/src/helpers/array/array_rand.mjs +129 -0
- package/src/helpers/array/array_reduce.mjs +90 -0
- package/src/helpers/array/array_replace.mjs +25 -0
- package/src/helpers/array/array_replace_recursive.mjs +109 -0
- package/src/helpers/array/array_reverse.mjs +62 -0
- package/src/helpers/array/array_search.mjs +104 -0
- package/src/helpers/array/array_shift.mjs +78 -0
- package/src/helpers/array/array_slice.mjs +99 -0
- package/src/helpers/array/array_splice.mjs +218 -0
- package/src/helpers/array/array_sum.mjs +60 -0
- package/src/helpers/array/array_udiff.mjs +91 -0
- package/src/helpers/array/array_udiff_assoc.mjs +71 -0
- package/src/helpers/array/array_udiff_uassoc.mjs +124 -0
- package/src/helpers/array/array_uintersect.mjs +72 -0
- package/src/helpers/array/array_uintersect_assoc.mjs +77 -0
- package/src/helpers/array/array_uintersect_uassoc.mjs +121 -0
- package/src/helpers/array/array_unique.mjs +77 -0
- package/src/helpers/array/array_unshift.mjs +64 -0
- package/src/helpers/array/array_values.mjs +57 -0
- package/src/helpers/array/array_walk.mjs +95 -0
- package/src/helpers/array/array_walk_recursive.mjs +104 -0
- package/src/helpers/array/count.mjs +57 -0
- package/src/helpers/array/in_array.mjs +67 -0
- package/src/helpers/array/natsort.mjs +62 -0
- package/src/helpers/array/range.mjs +121 -0
- package/src/helpers/array/shuffle.mjs +73 -0
- package/src/helpers/array/sort.mjs +69 -0
- package/src/helpers/expect.mjs +44 -0
- package/src/helpers/expect_array.mjs +66 -0
- package/src/helpers/expect_assoc.mjs +66 -0
- package/src/helpers/expect_bigint.mjs +66 -0
- package/src/helpers/expect_bool.mjs +66 -0
- package/src/helpers/expect_boolean.mjs +57 -0
- package/src/helpers/expect_char.mjs +66 -0
- package/src/helpers/expect_class.mjs +66 -0
- package/src/helpers/expect_float.mjs +66 -0
- package/src/helpers/expect_function.mjs +66 -0
- package/src/helpers/expect_infinity.mjs +66 -0
- package/src/helpers/expect_int.mjs +66 -0
- package/src/helpers/expect_integer.mjs +57 -0
- package/src/helpers/expect_list.mjs +66 -0
- package/src/helpers/expect_nan.mjs +66 -0
- package/src/helpers/expect_null.mjs +66 -0
- package/src/helpers/expect_number.mjs +66 -0
- package/src/helpers/expect_numeric.mjs +66 -0
- package/src/helpers/expect_object.mjs +67 -0
- package/src/helpers/expect_scalar.mjs +66 -0
- package/src/helpers/expect_string.mjs +65 -0
- package/src/helpers/expect_symbol.mjs +66 -0
- package/src/helpers/expect_undefined.mjs +66 -0
- package/src/helpers/is_char.mjs +54 -0
- package/src/helpers/is_equal.mjs +94 -0
- package/src/helpers/string/is_digit_char.mjs +60 -0
- package/src/helpers/string/is_whitespace_char.mjs +54 -0
- package/src/helpers/string/natcompare.mjs +107 -0
- package/src/helpers/string/natcompare_numeric.mjs +131 -0
- package/tests/classes/Expect/toBe.test.mjs +60 -0
- package/tests/classes/Expect/toBeArray.test.mjs +46 -0
- package/tests/classes/Expect/toBeAssoc.test.mjs +48 -0
- package/tests/classes/Expect/toBeBigInt.test.mjs +46 -0
- package/tests/classes/Expect/toBeBool.test.mjs +48 -0
- package/tests/classes/Expect/toBeBoolean.test.mjs +48 -0
- package/tests/classes/Expect/toBeChar.test.mjs +46 -0
- package/tests/classes/Expect/toBeClass.test.mjs +48 -0
- package/tests/classes/Expect/toBeFloat.test.mjs +48 -0
- package/tests/classes/Expect/toBeFunction.test.mjs +51 -0
- package/tests/classes/Expect/toBeInfinity.test.mjs +48 -0
- package/tests/classes/Expect/toBeInt.test.mjs +48 -0
- package/tests/classes/Expect/toBeInteger.test.mjs +48 -0
- package/tests/classes/Expect/toBeList.test.mjs +46 -0
- package/tests/classes/Expect/toBeNaN.test.mjs +46 -0
- package/tests/classes/Expect/toBeNull.test.mjs +46 -0
- package/tests/classes/Expect/toBeNumber.test.mjs +46 -0
- package/tests/classes/Expect/toBeNumeric.test.mjs +53 -0
- package/tests/classes/Expect/toBeObject.test.mjs +47 -0
- package/tests/classes/Expect/toBeScalar.test.mjs +63 -0
- package/tests/classes/Expect/toBeString.test.mjs +46 -0
- package/tests/classes/Expect/toBeSymbol.test.mjs +46 -0
- package/tests/classes/Expect/toBeUndefined.test.mjs +50 -0
- package/tests/classes/Expect/toEqual.test.mjs +66 -0
- package/tests/classes/Expect/toStrictEqual.test.mjs +73 -0
- package/tests/classes/Type.test.mjs +1320 -1262
- package/tests/helpers/array/array_chunk.test.mjs +49 -0
- package/tests/helpers/array/array_chunk_with_keys.test.mjs +45 -0
- package/tests/helpers/array/array_column.test.mjs +87 -0
- package/tests/helpers/array/array_combine.test.mjs +41 -0
- package/tests/helpers/array/array_count_values.test.mjs +40 -0
- package/tests/helpers/array/array_diff.test.mjs +78 -0
- package/tests/helpers/array/array_diff_assoc.test.mjs +64 -0
- package/tests/helpers/array/array_diff_key.test.mjs +64 -0
- package/tests/helpers/array/array_diff_uassoc.test.mjs +73 -0
- package/tests/helpers/array/array_diff_ukey.test.mjs +77 -0
- package/tests/helpers/array/array_fill.test.mjs +47 -0
- package/tests/helpers/array/array_fill_keys.test.mjs +35 -0
- package/tests/helpers/array/array_filter.test.mjs +38 -0
- package/tests/helpers/array/array_flip.test.mjs +33 -0
- package/tests/helpers/array/array_index_max.test.mjs +41 -0
- package/tests/helpers/array/array_index_min.test.mjs +41 -0
- package/tests/helpers/array/array_intersect.test.mjs +65 -0
- package/tests/helpers/array/array_intersect_assoc.test.mjs +65 -0
- package/tests/helpers/array/array_intersect_key.test.mjs +65 -0
- package/tests/helpers/array/array_intersect_uassoc.test.mjs +76 -0
- package/tests/helpers/array/array_intersect_ukey.test.mjs +74 -0
- package/tests/helpers/array/array_key_exists.test.mjs +36 -0
- package/tests/helpers/array/array_key_first.test.mjs +29 -0
- package/tests/helpers/array/array_key_last.test.mjs +29 -0
- package/tests/helpers/array/array_key_to_lower_case.test.mjs +23 -0
- package/tests/helpers/array/array_key_to_upper_case.test.mjs +23 -0
- package/tests/helpers/array/array_keys.test.mjs +27 -0
- package/tests/helpers/array/array_map.test.mjs +32 -0
- package/tests/helpers/array/array_merge.test.mjs +37 -0
- package/tests/helpers/array/array_merge_recursive.test.mjs +65 -0
- package/tests/helpers/array/array_pad.test.mjs +48 -0
- package/tests/helpers/array/array_pop.test.mjs +29 -0
- package/tests/helpers/array/array_product.test.mjs +33 -0
- package/tests/helpers/array/array_push.test.mjs +31 -0
- package/tests/helpers/array/array_rand.test.mjs +59 -0
- package/tests/helpers/array/array_reduce.test.mjs +44 -0
- package/tests/helpers/array/array_replace.test.mjs +46 -0
- package/tests/helpers/array/array_replace_recursive.test.mjs +46 -0
- package/tests/helpers/array/array_reverse.test.mjs +31 -0
- package/tests/helpers/array/array_search.test.mjs +48 -0
- package/tests/helpers/array/array_shift.test.mjs +29 -0
- package/tests/helpers/array/array_slice.test.mjs +49 -0
- package/tests/helpers/array/array_splice.test.mjs +67 -0
- package/tests/helpers/array/array_sum.test.mjs +27 -0
- package/tests/helpers/array/array_udiff.test.mjs +95 -0
- package/tests/helpers/array/array_udiff_assoc.test.mjs +77 -0
- package/tests/helpers/array/array_udiff_uassoc.test.mjs +89 -0
- package/tests/helpers/array/array_uintersect.test.mjs +78 -0
- package/tests/helpers/array/array_uintersect_assoc.test.mjs +80 -0
- package/tests/helpers/array/array_uintersect_uassoc.test.mjs +122 -0
- package/tests/helpers/array/array_unique.test.mjs +27 -0
- package/tests/helpers/array/array_unshift.test.mjs +31 -0
- package/tests/helpers/array/array_values.test.mjs +27 -0
- package/tests/helpers/array/array_walk.test.mjs +48 -0
- package/tests/helpers/array/array_walk_recursive.test.mjs +53 -0
- package/tests/helpers/array/count.test.mjs +27 -0
- package/tests/helpers/array/in_array.test.mjs +52 -0
- package/tests/helpers/array/natsort.test.mjs +71 -0
- package/tests/helpers/array/range.test.mjs +51 -0
- package/tests/helpers/array/shuffle.test.mjs +42 -0
- package/tests/helpers/array/sort.test.mjs +60 -0
- package/tests/helpers/array.test.mjs +58 -58
- package/tests/helpers/expect.test.mjs +95 -0
- package/tests/helpers/expect_array.test.mjs +71 -0
- package/tests/helpers/expect_assoc.test.mjs +61 -0
- package/tests/helpers/expect_bigint.test.mjs +63 -0
- package/tests/helpers/expect_bool.test.mjs +59 -0
- package/tests/helpers/expect_boolean.test.mjs +61 -0
- package/tests/helpers/expect_char.test.mjs +63 -0
- package/tests/helpers/expect_class.test.mjs +64 -0
- package/tests/helpers/expect_float.test.mjs +64 -0
- package/tests/helpers/expect_function.test.mjs +65 -0
- package/tests/helpers/expect_infinity.test.mjs +62 -0
- package/tests/helpers/expect_int.test.mjs +57 -0
- package/tests/helpers/expect_integer.test.mjs +59 -0
- package/tests/helpers/expect_list.test.mjs +73 -0
- package/tests/helpers/expect_nan.test.mjs +57 -0
- package/tests/helpers/expect_null.test.mjs +57 -0
- package/tests/helpers/expect_number.test.mjs +57 -0
- package/tests/helpers/expect_numeric.test.mjs +57 -0
- package/tests/helpers/expect_object.test.mjs +63 -0
- package/tests/helpers/expect_scalar.test.mjs +72 -0
- package/tests/helpers/expect_string.test.mjs +65 -0
- package/tests/helpers/expect_symbol.test.mjs +66 -0
- package/tests/helpers/expect_undefined.test.mjs +59 -0
- package/tests/helpers/is_char.test.mjs +40 -0
- package/tests/helpers/is_equal.test.mjs +110 -0
- package/tests/helpers/string/is_digit_char.test.mjs +32 -0
- package/tests/helpers/string/is_whitespace_char.test.mjs +32 -0
- package/tests/helpers/string/natcompare.test.mjs +100 -0
- package/tests/helpers/string/natcompare_numeric.test.mjs +110 -0
package/src/classes/Type.mjs
CHANGED
|
@@ -1,1284 +1,2739 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
import
|
|
18
|
-
import
|
|
19
|
-
import
|
|
20
|
-
import
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
* Type
|
|
61
|
-
*
|
|
62
|
-
*
|
|
63
|
-
*
|
|
64
|
-
* Type
|
|
65
|
-
*
|
|
66
|
-
*
|
|
67
|
-
*
|
|
68
|
-
*
|
|
69
|
-
*
|
|
70
|
-
*
|
|
71
|
-
* Type.
|
|
72
|
-
* Type.
|
|
73
|
-
*
|
|
74
|
-
*
|
|
75
|
-
* Type.
|
|
76
|
-
* Type.
|
|
77
|
-
*
|
|
78
|
-
*
|
|
79
|
-
*
|
|
80
|
-
*
|
|
81
|
-
* Type.
|
|
82
|
-
* Type.
|
|
83
|
-
*
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
*
|
|
125
|
-
*
|
|
126
|
-
*
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
*
|
|
132
|
-
*
|
|
133
|
-
*
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
*
|
|
139
|
-
*
|
|
140
|
-
*
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
*
|
|
146
|
-
*
|
|
147
|
-
*
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
*
|
|
160
|
-
*
|
|
161
|
-
*
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
*
|
|
167
|
-
*
|
|
168
|
-
*
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
*
|
|
174
|
-
*
|
|
175
|
-
*
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
*
|
|
181
|
-
*
|
|
182
|
-
*
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
*
|
|
188
|
-
*
|
|
189
|
-
*
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
*
|
|
195
|
-
*
|
|
196
|
-
*
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
*
|
|
202
|
-
*
|
|
203
|
-
*
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
*
|
|
209
|
-
*
|
|
210
|
-
*
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
*
|
|
216
|
-
*
|
|
217
|
-
*
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
*
|
|
223
|
-
*
|
|
224
|
-
*
|
|
225
|
-
*
|
|
226
|
-
*
|
|
227
|
-
*
|
|
228
|
-
*
|
|
229
|
-
*
|
|
230
|
-
*
|
|
231
|
-
*
|
|
232
|
-
*
|
|
233
|
-
*
|
|
234
|
-
*
|
|
235
|
-
*
|
|
236
|
-
*
|
|
237
|
-
*
|
|
238
|
-
*
|
|
239
|
-
*
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
*
|
|
247
|
-
*
|
|
248
|
-
*
|
|
249
|
-
*
|
|
250
|
-
*
|
|
251
|
-
*
|
|
252
|
-
*
|
|
253
|
-
*
|
|
254
|
-
*
|
|
255
|
-
*
|
|
256
|
-
*
|
|
257
|
-
*
|
|
258
|
-
*
|
|
259
|
-
*
|
|
260
|
-
*
|
|
261
|
-
*
|
|
262
|
-
*
|
|
263
|
-
*
|
|
264
|
-
*
|
|
265
|
-
*
|
|
266
|
-
*
|
|
267
|
-
*
|
|
268
|
-
*
|
|
269
|
-
*
|
|
270
|
-
*
|
|
271
|
-
*
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
*
|
|
279
|
-
*
|
|
280
|
-
*
|
|
281
|
-
*
|
|
282
|
-
*
|
|
283
|
-
*
|
|
284
|
-
*
|
|
285
|
-
*
|
|
286
|
-
*
|
|
287
|
-
*
|
|
288
|
-
*
|
|
289
|
-
*
|
|
290
|
-
*
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
*
|
|
298
|
-
*
|
|
299
|
-
*
|
|
300
|
-
*
|
|
301
|
-
*
|
|
302
|
-
*
|
|
303
|
-
*
|
|
304
|
-
*
|
|
305
|
-
*
|
|
306
|
-
*
|
|
307
|
-
*
|
|
308
|
-
*
|
|
309
|
-
*
|
|
310
|
-
*
|
|
311
|
-
*
|
|
312
|
-
*
|
|
313
|
-
*
|
|
314
|
-
*
|
|
315
|
-
*
|
|
316
|
-
*
|
|
317
|
-
*
|
|
318
|
-
* Type.
|
|
319
|
-
*
|
|
320
|
-
*
|
|
321
|
-
*
|
|
322
|
-
*
|
|
323
|
-
*
|
|
324
|
-
*
|
|
325
|
-
*
|
|
326
|
-
*
|
|
327
|
-
*
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
*
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
*
|
|
342
|
-
*
|
|
343
|
-
*
|
|
344
|
-
*
|
|
345
|
-
*
|
|
346
|
-
*
|
|
347
|
-
*
|
|
348
|
-
*
|
|
349
|
-
*
|
|
350
|
-
*
|
|
351
|
-
*
|
|
352
|
-
*
|
|
353
|
-
*
|
|
354
|
-
*
|
|
355
|
-
*
|
|
356
|
-
*
|
|
357
|
-
*
|
|
358
|
-
*
|
|
359
|
-
*
|
|
360
|
-
*
|
|
361
|
-
*
|
|
362
|
-
*
|
|
363
|
-
*
|
|
364
|
-
*
|
|
365
|
-
*
|
|
366
|
-
*
|
|
367
|
-
*
|
|
368
|
-
*
|
|
369
|
-
*
|
|
370
|
-
*
|
|
371
|
-
*
|
|
372
|
-
*
|
|
373
|
-
*
|
|
374
|
-
* Type.
|
|
375
|
-
*
|
|
376
|
-
*
|
|
377
|
-
*
|
|
378
|
-
*
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
*
|
|
391
|
-
*
|
|
392
|
-
*
|
|
393
|
-
*
|
|
394
|
-
*
|
|
395
|
-
*
|
|
396
|
-
*
|
|
397
|
-
*
|
|
398
|
-
*
|
|
399
|
-
*
|
|
400
|
-
*
|
|
401
|
-
*
|
|
402
|
-
*
|
|
403
|
-
*
|
|
404
|
-
*
|
|
405
|
-
*
|
|
406
|
-
*
|
|
407
|
-
*
|
|
408
|
-
*
|
|
409
|
-
*
|
|
410
|
-
*
|
|
411
|
-
*
|
|
412
|
-
* Type.
|
|
413
|
-
*
|
|
414
|
-
*
|
|
415
|
-
*
|
|
416
|
-
*
|
|
417
|
-
*
|
|
418
|
-
*
|
|
419
|
-
*
|
|
420
|
-
*
|
|
421
|
-
*
|
|
422
|
-
*
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
*
|
|
430
|
-
*
|
|
431
|
-
*
|
|
432
|
-
*
|
|
433
|
-
*
|
|
434
|
-
*
|
|
435
|
-
*
|
|
436
|
-
*
|
|
437
|
-
*
|
|
438
|
-
*
|
|
439
|
-
*
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
*
|
|
447
|
-
*
|
|
448
|
-
*
|
|
449
|
-
*
|
|
450
|
-
*
|
|
451
|
-
*
|
|
452
|
-
*
|
|
453
|
-
*
|
|
454
|
-
*
|
|
455
|
-
*
|
|
456
|
-
*
|
|
457
|
-
*
|
|
458
|
-
*
|
|
459
|
-
*
|
|
460
|
-
*
|
|
461
|
-
*
|
|
462
|
-
*
|
|
463
|
-
*
|
|
464
|
-
*
|
|
465
|
-
*
|
|
466
|
-
*
|
|
467
|
-
*
|
|
468
|
-
*
|
|
469
|
-
*
|
|
470
|
-
*
|
|
471
|
-
*
|
|
472
|
-
*
|
|
473
|
-
*
|
|
474
|
-
*
|
|
475
|
-
*
|
|
476
|
-
*
|
|
477
|
-
*
|
|
478
|
-
*
|
|
479
|
-
*
|
|
480
|
-
*
|
|
481
|
-
*
|
|
482
|
-
*
|
|
483
|
-
*
|
|
484
|
-
*
|
|
485
|
-
*
|
|
486
|
-
* Type.
|
|
487
|
-
*
|
|
488
|
-
*
|
|
489
|
-
*
|
|
490
|
-
*
|
|
491
|
-
*
|
|
492
|
-
* @param {any} value
|
|
493
|
-
* @
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
*
|
|
503
|
-
*
|
|
504
|
-
*
|
|
505
|
-
*
|
|
506
|
-
*
|
|
507
|
-
*
|
|
508
|
-
*
|
|
509
|
-
*
|
|
510
|
-
*
|
|
511
|
-
*
|
|
512
|
-
*
|
|
513
|
-
*
|
|
514
|
-
*
|
|
515
|
-
*
|
|
516
|
-
*
|
|
517
|
-
*
|
|
518
|
-
*
|
|
519
|
-
*
|
|
520
|
-
*
|
|
521
|
-
*
|
|
522
|
-
*
|
|
523
|
-
*
|
|
524
|
-
*
|
|
525
|
-
*
|
|
526
|
-
*
|
|
527
|
-
*
|
|
528
|
-
*
|
|
529
|
-
*
|
|
530
|
-
*
|
|
531
|
-
*
|
|
532
|
-
*
|
|
533
|
-
*
|
|
534
|
-
*
|
|
535
|
-
*
|
|
536
|
-
*
|
|
537
|
-
*
|
|
538
|
-
*
|
|
539
|
-
*
|
|
540
|
-
*
|
|
541
|
-
*
|
|
542
|
-
*
|
|
543
|
-
*
|
|
544
|
-
*
|
|
545
|
-
*
|
|
546
|
-
*
|
|
547
|
-
*
|
|
548
|
-
*
|
|
549
|
-
*
|
|
550
|
-
*
|
|
551
|
-
*
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
*
|
|
559
|
-
*
|
|
560
|
-
*
|
|
561
|
-
*
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
*
|
|
569
|
-
*
|
|
570
|
-
* ###
|
|
571
|
-
*
|
|
572
|
-
*
|
|
573
|
-
*
|
|
574
|
-
*
|
|
575
|
-
*
|
|
576
|
-
*
|
|
577
|
-
*
|
|
578
|
-
*
|
|
579
|
-
*
|
|
580
|
-
*
|
|
581
|
-
*
|
|
582
|
-
*
|
|
583
|
-
*
|
|
584
|
-
*
|
|
585
|
-
*
|
|
586
|
-
*
|
|
587
|
-
*
|
|
588
|
-
*
|
|
589
|
-
*
|
|
590
|
-
*
|
|
591
|
-
*
|
|
592
|
-
*
|
|
593
|
-
*
|
|
594
|
-
*
|
|
595
|
-
*
|
|
596
|
-
*
|
|
597
|
-
*
|
|
598
|
-
*
|
|
599
|
-
*
|
|
600
|
-
*
|
|
601
|
-
*
|
|
602
|
-
*
|
|
603
|
-
*
|
|
604
|
-
*
|
|
605
|
-
*
|
|
606
|
-
*
|
|
607
|
-
*
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
*
|
|
615
|
-
*
|
|
616
|
-
*
|
|
617
|
-
*
|
|
618
|
-
*
|
|
619
|
-
*
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
*
|
|
627
|
-
*
|
|
628
|
-
*
|
|
629
|
-
*
|
|
630
|
-
*
|
|
631
|
-
*
|
|
632
|
-
*
|
|
633
|
-
*
|
|
634
|
-
*
|
|
635
|
-
*
|
|
636
|
-
*
|
|
637
|
-
*
|
|
638
|
-
*
|
|
639
|
-
*
|
|
640
|
-
*
|
|
641
|
-
*
|
|
642
|
-
*
|
|
643
|
-
*
|
|
644
|
-
*
|
|
645
|
-
*
|
|
646
|
-
*
|
|
647
|
-
*
|
|
648
|
-
*
|
|
649
|
-
*
|
|
650
|
-
*
|
|
651
|
-
*
|
|
652
|
-
*
|
|
653
|
-
*
|
|
654
|
-
*
|
|
655
|
-
*
|
|
656
|
-
*
|
|
657
|
-
*
|
|
658
|
-
*
|
|
659
|
-
*
|
|
660
|
-
*
|
|
661
|
-
*
|
|
662
|
-
*
|
|
663
|
-
*
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
*
|
|
671
|
-
*
|
|
672
|
-
*
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
*
|
|
680
|
-
*
|
|
681
|
-
*
|
|
682
|
-
*
|
|
683
|
-
*
|
|
684
|
-
*
|
|
685
|
-
*
|
|
686
|
-
* ###
|
|
687
|
-
*
|
|
688
|
-
*
|
|
689
|
-
*
|
|
690
|
-
*
|
|
691
|
-
*
|
|
692
|
-
*
|
|
693
|
-
*
|
|
694
|
-
*
|
|
695
|
-
*
|
|
696
|
-
*
|
|
697
|
-
*
|
|
698
|
-
*
|
|
699
|
-
*
|
|
700
|
-
*
|
|
701
|
-
*
|
|
702
|
-
*
|
|
703
|
-
*
|
|
704
|
-
*
|
|
705
|
-
*
|
|
706
|
-
*
|
|
707
|
-
*
|
|
708
|
-
*
|
|
709
|
-
*
|
|
710
|
-
*
|
|
711
|
-
*
|
|
712
|
-
*
|
|
713
|
-
*
|
|
714
|
-
*
|
|
715
|
-
*
|
|
716
|
-
*
|
|
717
|
-
*
|
|
718
|
-
*
|
|
719
|
-
*
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
*
|
|
727
|
-
*
|
|
728
|
-
*
|
|
729
|
-
*
|
|
730
|
-
*
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
*
|
|
738
|
-
*
|
|
739
|
-
*
|
|
740
|
-
*
|
|
741
|
-
*
|
|
742
|
-
*
|
|
743
|
-
*
|
|
744
|
-
*
|
|
745
|
-
*
|
|
746
|
-
*
|
|
747
|
-
*
|
|
748
|
-
*
|
|
749
|
-
*
|
|
750
|
-
*
|
|
751
|
-
*
|
|
752
|
-
*
|
|
753
|
-
*
|
|
754
|
-
*
|
|
755
|
-
*
|
|
756
|
-
*
|
|
757
|
-
*
|
|
758
|
-
*
|
|
759
|
-
*
|
|
760
|
-
*
|
|
761
|
-
*
|
|
762
|
-
*
|
|
763
|
-
*
|
|
764
|
-
*
|
|
765
|
-
*
|
|
766
|
-
*
|
|
767
|
-
*
|
|
768
|
-
*
|
|
769
|
-
*
|
|
770
|
-
*
|
|
771
|
-
*
|
|
772
|
-
*
|
|
773
|
-
*
|
|
774
|
-
*
|
|
775
|
-
*
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
*
|
|
783
|
-
*
|
|
784
|
-
*
|
|
785
|
-
*
|
|
786
|
-
*
|
|
787
|
-
*
|
|
788
|
-
*
|
|
789
|
-
*
|
|
790
|
-
*
|
|
791
|
-
*
|
|
792
|
-
*
|
|
793
|
-
*
|
|
794
|
-
*
|
|
795
|
-
*
|
|
796
|
-
*
|
|
797
|
-
*
|
|
798
|
-
*
|
|
799
|
-
*
|
|
800
|
-
*
|
|
801
|
-
*
|
|
802
|
-
*
|
|
803
|
-
*
|
|
804
|
-
*
|
|
805
|
-
*
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
*
|
|
813
|
-
*
|
|
814
|
-
*
|
|
815
|
-
*
|
|
816
|
-
*
|
|
817
|
-
*
|
|
818
|
-
*
|
|
819
|
-
*
|
|
820
|
-
*
|
|
821
|
-
*
|
|
822
|
-
*
|
|
823
|
-
*
|
|
824
|
-
*
|
|
825
|
-
*
|
|
826
|
-
*
|
|
827
|
-
*
|
|
828
|
-
*
|
|
829
|
-
*
|
|
830
|
-
*
|
|
831
|
-
*
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
*
|
|
839
|
-
*
|
|
840
|
-
*
|
|
841
|
-
*
|
|
842
|
-
*
|
|
843
|
-
*
|
|
844
|
-
*
|
|
845
|
-
*
|
|
846
|
-
*
|
|
847
|
-
*
|
|
848
|
-
*
|
|
849
|
-
*
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
*
|
|
857
|
-
*
|
|
858
|
-
*
|
|
859
|
-
*
|
|
860
|
-
*
|
|
861
|
-
*
|
|
862
|
-
*
|
|
863
|
-
*
|
|
864
|
-
*
|
|
865
|
-
*
|
|
866
|
-
*
|
|
867
|
-
*
|
|
868
|
-
*
|
|
869
|
-
*
|
|
870
|
-
*
|
|
871
|
-
*
|
|
872
|
-
*
|
|
873
|
-
*
|
|
874
|
-
*
|
|
875
|
-
*
|
|
876
|
-
*
|
|
877
|
-
*
|
|
878
|
-
* Type.
|
|
879
|
-
*
|
|
880
|
-
*
|
|
881
|
-
*
|
|
882
|
-
*
|
|
883
|
-
*
|
|
884
|
-
*
|
|
885
|
-
*
|
|
886
|
-
*
|
|
887
|
-
*
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
*
|
|
895
|
-
*
|
|
896
|
-
*
|
|
897
|
-
*
|
|
898
|
-
*
|
|
899
|
-
*
|
|
900
|
-
*
|
|
901
|
-
*
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
*
|
|
909
|
-
*
|
|
910
|
-
* ###
|
|
911
|
-
*
|
|
912
|
-
*
|
|
913
|
-
*
|
|
914
|
-
*
|
|
915
|
-
*
|
|
916
|
-
*
|
|
917
|
-
*
|
|
918
|
-
*
|
|
919
|
-
*
|
|
920
|
-
*
|
|
921
|
-
*
|
|
922
|
-
*
|
|
923
|
-
*
|
|
924
|
-
*
|
|
925
|
-
*
|
|
926
|
-
*
|
|
927
|
-
*
|
|
928
|
-
*
|
|
929
|
-
*
|
|
930
|
-
*
|
|
931
|
-
*
|
|
932
|
-
*
|
|
933
|
-
*
|
|
934
|
-
*
|
|
935
|
-
*
|
|
936
|
-
*
|
|
937
|
-
*
|
|
938
|
-
*
|
|
939
|
-
*
|
|
940
|
-
*
|
|
941
|
-
*
|
|
942
|
-
*
|
|
943
|
-
*
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
*
|
|
953
|
-
*
|
|
954
|
-
*
|
|
955
|
-
*
|
|
956
|
-
*
|
|
957
|
-
*
|
|
958
|
-
*
|
|
959
|
-
*
|
|
960
|
-
*
|
|
961
|
-
*
|
|
962
|
-
*
|
|
963
|
-
*
|
|
964
|
-
*
|
|
965
|
-
*
|
|
966
|
-
*
|
|
967
|
-
*
|
|
968
|
-
*
|
|
969
|
-
*
|
|
970
|
-
*
|
|
971
|
-
*
|
|
972
|
-
*
|
|
973
|
-
*
|
|
974
|
-
*
|
|
975
|
-
*
|
|
976
|
-
*
|
|
977
|
-
*
|
|
978
|
-
*
|
|
979
|
-
*
|
|
980
|
-
*
|
|
981
|
-
*
|
|
982
|
-
*
|
|
983
|
-
*
|
|
984
|
-
*
|
|
985
|
-
*
|
|
986
|
-
*
|
|
987
|
-
*
|
|
988
|
-
*
|
|
989
|
-
*
|
|
990
|
-
*
|
|
991
|
-
*
|
|
992
|
-
*
|
|
993
|
-
*
|
|
994
|
-
*
|
|
995
|
-
*
|
|
996
|
-
*
|
|
997
|
-
*
|
|
998
|
-
*
|
|
999
|
-
* @
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
*
|
|
1008
|
-
*
|
|
1009
|
-
*
|
|
1010
|
-
*
|
|
1011
|
-
*
|
|
1012
|
-
*
|
|
1013
|
-
*
|
|
1014
|
-
*
|
|
1015
|
-
*
|
|
1016
|
-
*
|
|
1017
|
-
*
|
|
1018
|
-
*
|
|
1019
|
-
*
|
|
1020
|
-
*
|
|
1021
|
-
*
|
|
1022
|
-
*
|
|
1023
|
-
*
|
|
1024
|
-
*
|
|
1025
|
-
*
|
|
1026
|
-
*
|
|
1027
|
-
*
|
|
1028
|
-
*
|
|
1029
|
-
*
|
|
1030
|
-
*
|
|
1031
|
-
*
|
|
1032
|
-
*
|
|
1033
|
-
*
|
|
1034
|
-
*
|
|
1035
|
-
*
|
|
1036
|
-
* Type.
|
|
1037
|
-
*
|
|
1038
|
-
*
|
|
1039
|
-
*
|
|
1040
|
-
*
|
|
1041
|
-
*
|
|
1042
|
-
*
|
|
1043
|
-
*
|
|
1044
|
-
*
|
|
1045
|
-
*
|
|
1046
|
-
* Type.
|
|
1047
|
-
*
|
|
1048
|
-
*
|
|
1049
|
-
*
|
|
1050
|
-
*
|
|
1051
|
-
*
|
|
1052
|
-
* @
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
|
-
*
|
|
1063
|
-
*
|
|
1064
|
-
*
|
|
1065
|
-
*
|
|
1066
|
-
*
|
|
1067
|
-
*
|
|
1068
|
-
*
|
|
1069
|
-
*
|
|
1070
|
-
*
|
|
1071
|
-
*
|
|
1072
|
-
*
|
|
1073
|
-
*
|
|
1074
|
-
* ### Возвращаемое значение
|
|
1075
|
-
*
|
|
1076
|
-
* Возвращает `true`, если значение является
|
|
1077
|
-
*
|
|
1078
|
-
* ### Примеры использования
|
|
1079
|
-
*
|
|
1080
|
-
*
|
|
1081
|
-
*
|
|
1082
|
-
*
|
|
1083
|
-
*
|
|
1084
|
-
* Type.
|
|
1085
|
-
*
|
|
1086
|
-
*
|
|
1087
|
-
*
|
|
1088
|
-
*
|
|
1089
|
-
*
|
|
1090
|
-
*
|
|
1091
|
-
*
|
|
1092
|
-
* Type.
|
|
1093
|
-
*
|
|
1094
|
-
*
|
|
1095
|
-
*
|
|
1096
|
-
*
|
|
1097
|
-
*
|
|
1098
|
-
*
|
|
1099
|
-
*
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
|
|
1103
|
-
}
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
*
|
|
1107
|
-
*
|
|
1108
|
-
*
|
|
1109
|
-
*
|
|
1110
|
-
*
|
|
1111
|
-
*
|
|
1112
|
-
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
*
|
|
1119
|
-
*
|
|
1120
|
-
*
|
|
1121
|
-
*
|
|
1122
|
-
*
|
|
1123
|
-
*
|
|
1124
|
-
*
|
|
1125
|
-
*
|
|
1126
|
-
*
|
|
1127
|
-
*
|
|
1128
|
-
*
|
|
1129
|
-
*
|
|
1130
|
-
*
|
|
1131
|
-
*
|
|
1132
|
-
*
|
|
1133
|
-
*
|
|
1134
|
-
*
|
|
1135
|
-
*
|
|
1136
|
-
*
|
|
1137
|
-
*
|
|
1138
|
-
*
|
|
1139
|
-
*
|
|
1140
|
-
*
|
|
1141
|
-
|
|
1142
|
-
|
|
1143
|
-
|
|
1144
|
-
|
|
1145
|
-
|
|
1146
|
-
|
|
1147
|
-
*
|
|
1148
|
-
*
|
|
1149
|
-
*
|
|
1150
|
-
*
|
|
1151
|
-
*
|
|
1152
|
-
*
|
|
1153
|
-
*
|
|
1154
|
-
*
|
|
1155
|
-
*
|
|
1156
|
-
*
|
|
1157
|
-
*
|
|
1158
|
-
*
|
|
1159
|
-
*
|
|
1160
|
-
*
|
|
1161
|
-
*
|
|
1162
|
-
*
|
|
1163
|
-
*
|
|
1164
|
-
*
|
|
1165
|
-
*
|
|
1166
|
-
*
|
|
1167
|
-
*
|
|
1168
|
-
|
|
1169
|
-
|
|
1170
|
-
|
|
1171
|
-
|
|
1172
|
-
|
|
1173
|
-
|
|
1174
|
-
*
|
|
1175
|
-
*
|
|
1176
|
-
*
|
|
1177
|
-
*
|
|
1178
|
-
*
|
|
1179
|
-
*
|
|
1180
|
-
*
|
|
1181
|
-
*
|
|
1182
|
-
*
|
|
1183
|
-
*
|
|
1184
|
-
*
|
|
1185
|
-
*
|
|
1186
|
-
*
|
|
1187
|
-
*
|
|
1188
|
-
|
|
1189
|
-
|
|
1190
|
-
|
|
1191
|
-
|
|
1192
|
-
|
|
1193
|
-
|
|
1194
|
-
*
|
|
1195
|
-
*
|
|
1196
|
-
*
|
|
1197
|
-
*
|
|
1198
|
-
*
|
|
1199
|
-
*
|
|
1200
|
-
*
|
|
1201
|
-
*
|
|
1202
|
-
*
|
|
1203
|
-
*
|
|
1204
|
-
*
|
|
1205
|
-
*
|
|
1206
|
-
*
|
|
1207
|
-
*
|
|
1208
|
-
*
|
|
1209
|
-
*
|
|
1210
|
-
*
|
|
1211
|
-
*
|
|
1212
|
-
*
|
|
1213
|
-
*
|
|
1214
|
-
*
|
|
1215
|
-
*
|
|
1216
|
-
*
|
|
1217
|
-
*
|
|
1218
|
-
*
|
|
1219
|
-
*
|
|
1220
|
-
*
|
|
1221
|
-
*
|
|
1222
|
-
*
|
|
1223
|
-
*
|
|
1224
|
-
*
|
|
1225
|
-
|
|
1226
|
-
|
|
1227
|
-
|
|
1228
|
-
|
|
1229
|
-
|
|
1230
|
-
|
|
1231
|
-
*
|
|
1232
|
-
*
|
|
1233
|
-
*
|
|
1234
|
-
*
|
|
1235
|
-
|
|
1236
|
-
|
|
1237
|
-
|
|
1238
|
-
|
|
1239
|
-
|
|
1240
|
-
|
|
1241
|
-
*
|
|
1242
|
-
*
|
|
1243
|
-
* ###
|
|
1244
|
-
*
|
|
1245
|
-
*
|
|
1246
|
-
*
|
|
1247
|
-
*
|
|
1248
|
-
*
|
|
1249
|
-
*
|
|
1250
|
-
*
|
|
1251
|
-
*
|
|
1252
|
-
*
|
|
1253
|
-
*
|
|
1254
|
-
*
|
|
1255
|
-
*
|
|
1256
|
-
*
|
|
1257
|
-
*
|
|
1258
|
-
*
|
|
1259
|
-
*
|
|
1260
|
-
*
|
|
1261
|
-
*
|
|
1262
|
-
*
|
|
1263
|
-
* //
|
|
1264
|
-
*
|
|
1265
|
-
*
|
|
1266
|
-
*
|
|
1267
|
-
*
|
|
1268
|
-
*
|
|
1269
|
-
*
|
|
1270
|
-
*
|
|
1271
|
-
* Type.
|
|
1272
|
-
*
|
|
1273
|
-
*
|
|
1274
|
-
*
|
|
1275
|
-
*
|
|
1276
|
-
*
|
|
1277
|
-
* @
|
|
1278
|
-
|
|
1279
|
-
|
|
1280
|
-
|
|
1281
|
-
|
|
1282
|
-
|
|
1283
|
-
|
|
1284
|
-
|
|
1
|
+
import {
|
|
2
|
+
TYPE_ARRAY,
|
|
3
|
+
TYPE_BIGINT,
|
|
4
|
+
TYPE_BOOLEAN,
|
|
5
|
+
TYPE_CLASS,
|
|
6
|
+
TYPE_FLOAT,
|
|
7
|
+
TYPE_FUNCTION,
|
|
8
|
+
TYPE_INFINITY,
|
|
9
|
+
TYPE_INTEGER,
|
|
10
|
+
TYPE_NAN,
|
|
11
|
+
TYPE_NULL,
|
|
12
|
+
TYPE_OBJECT,
|
|
13
|
+
TYPE_STRING,
|
|
14
|
+
TYPE_SYMBOL,
|
|
15
|
+
TYPE_UNDEFINED,
|
|
16
|
+
} from '../constants.mjs';
|
|
17
|
+
import empty from '../helpers/empty.mjs';
|
|
18
|
+
import expect_array from '../helpers/expect_array.mjs';
|
|
19
|
+
import expect_assoc from '../helpers/expect_assoc.mjs';
|
|
20
|
+
import expect_bigint from '../helpers/expect_bigint.mjs';
|
|
21
|
+
import expect_bool from '../helpers/expect_bool.mjs';
|
|
22
|
+
import expect_char from '../helpers/expect_char.mjs';
|
|
23
|
+
import expect_class from '../helpers/expect_class.mjs';
|
|
24
|
+
import expect_float from '../helpers/expect_float.mjs';
|
|
25
|
+
import expect_function from '../helpers/expect_function.mjs';
|
|
26
|
+
import expect_infinity from '../helpers/expect_infinity.mjs';
|
|
27
|
+
import expect_int from '../helpers/expect_int.mjs';
|
|
28
|
+
import expect_integer from '../helpers/expect_integer.mjs';
|
|
29
|
+
import expect_list from '../helpers/expect_list.mjs';
|
|
30
|
+
import expect_nan from '../helpers/expect_nan.mjs';
|
|
31
|
+
import expect_null from '../helpers/expect_null.mjs';
|
|
32
|
+
import expect_number from '../helpers/expect_number.mjs';
|
|
33
|
+
import expect_numeric from '../helpers/expect_numeric.mjs';
|
|
34
|
+
import expect_object from '../helpers/expect_object.mjs';
|
|
35
|
+
import expect_scalar from '../helpers/expect_scalar.mjs';
|
|
36
|
+
import expect_string from '../helpers/expect_string.mjs';
|
|
37
|
+
import expect_symbol from '../helpers/expect_symbol.mjs';
|
|
38
|
+
import expect_undefined from '../helpers/expect_undefined.mjs';
|
|
39
|
+
import is_array from '../helpers/is_array.mjs';
|
|
40
|
+
import is_assoc from '../helpers/is_assoc.mjs';
|
|
41
|
+
import is_bigint from '../helpers/is_bigint.mjs';
|
|
42
|
+
import is_bool from '../helpers/is_bool.mjs';
|
|
43
|
+
import is_class from '../helpers/is_class.mjs';
|
|
44
|
+
import is_float from '../helpers/is_float.mjs';
|
|
45
|
+
import is_function from '../helpers/is_function.mjs';
|
|
46
|
+
import is_infinity from '../helpers/is_infinity.mjs';
|
|
47
|
+
import is_int from '../helpers/is_int.mjs';
|
|
48
|
+
import is_list from '../helpers/is_list.mjs';
|
|
49
|
+
import is_nan from '../helpers/is_nan.mjs';
|
|
50
|
+
import is_null from '../helpers/is_null.mjs';
|
|
51
|
+
import is_number from '../helpers/is_number.mjs';
|
|
52
|
+
import is_numeric from '../helpers/is_numeric.mjs';
|
|
53
|
+
import is_object from '../helpers/is_object.mjs';
|
|
54
|
+
import is_scalar from '../helpers/is_scalar.mjs';
|
|
55
|
+
import is_string from '../helpers/is_string.mjs';
|
|
56
|
+
import is_symbol from '../helpers/is_symbol.mjs';
|
|
57
|
+
import is_undefined from '../helpers/is_undefined.mjs';
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Класс `Type` предоставляет методы для проверки типов данных в JavaScript.
|
|
61
|
+
*
|
|
62
|
+
* ### Описание
|
|
63
|
+
*
|
|
64
|
+
* Класс `Type` включает в себя статические методы, которые позволяют проверять типы различных значений.
|
|
65
|
+
* Эти методы охватывают широкий спектр типов данных, включая примитивы, объекты, массивы, функции и специальные значения.
|
|
66
|
+
*
|
|
67
|
+
* ### Методы
|
|
68
|
+
*
|
|
69
|
+
* - `Type.isEmpty(value)` - Проверяет, является ли переменная пустой.
|
|
70
|
+
* - `Type.isArray(value)` - Проверяет, является ли переданное значение массивом или ассоциативным массивом.
|
|
71
|
+
* - `Type.isAssoc(value)` - Проверяет, является ли значение ассоциативным массивом.
|
|
72
|
+
* - `Type.isBigInt(value)` - Проверяет, является ли значение типом `bigint`.
|
|
73
|
+
* - `Type.isBool(value)` - Проверяет, является ли переданное значение логическим типом (`boolean`).
|
|
74
|
+
* - `Type.isBoolean(value)` - Проверяет, является ли переданное значение логическим типом (`boolean`).
|
|
75
|
+
* - `Type.isClass(value)` - Проверяет, является ли переданная переменная классом.
|
|
76
|
+
* - `Type.isFloat(value)` - Проверяет, является ли значение числом с плавающей точкой.
|
|
77
|
+
* - `Type.isFunction(value)` - Проверяет, что значение является функцией, исключая классы.
|
|
78
|
+
* - `Type.isInfinity(value)` - Проверяет, является ли значение бесконечностью (Infinity или -Infinity).
|
|
79
|
+
* - `Type.isInt(value)` - Проверяет, является ли значение целым числом.
|
|
80
|
+
* - `Type.isInteger(value)` - Проверяет, является ли значение целым числом.
|
|
81
|
+
* - `Type.isList(value)` - Проверяет, является ли значение списком.
|
|
82
|
+
* - `Type.isNaN(value)` - Проверяет, является ли значение NaN.
|
|
83
|
+
* - `Type.isNull(value)` - Проверяет, является ли значение `null`.
|
|
84
|
+
* - `Type.isNumber(value)` - Проверяет, является ли значение числом.
|
|
85
|
+
* - `Type.isNumeric(value)` - Проверяет, является ли значение числом или числовой строкой.
|
|
86
|
+
* - `Type.isObject(value)` - Проверяет, является ли переданная переменная объектом.
|
|
87
|
+
* - `Type.isScalar(value)` - Проверяет, является ли значение скалярным.
|
|
88
|
+
* - `Type.isString(value)` - Проверяет, является ли значение строкой.
|
|
89
|
+
* - `Type.isSymbol(value)` - Проверяет, является ли значение символом.
|
|
90
|
+
* - `Type.isUndefined(value)` - Проверяет, является ли значение `undefined`.
|
|
91
|
+
*
|
|
92
|
+
* ### Примеры использования
|
|
93
|
+
*
|
|
94
|
+
* ```js
|
|
95
|
+
* // Проверка пустых значений
|
|
96
|
+
* Type.isEmpty(null); // true
|
|
97
|
+
* Type.isEmpty(''); // true
|
|
98
|
+
*
|
|
99
|
+
* // Проверка массивов и ассоциативных массивов
|
|
100
|
+
* Type.isArray([1, 2, 3]); // true
|
|
101
|
+
* Type.isArray({ foo: 'bar' }); // true
|
|
102
|
+
*
|
|
103
|
+
* // Проверка логических значений
|
|
104
|
+
* Type.isBool(true); // true
|
|
105
|
+
* Type.isBoolean(false); // true
|
|
106
|
+
*
|
|
107
|
+
* // Проверка чисел и числовых строк
|
|
108
|
+
* Type.isNumber(42); // true
|
|
109
|
+
* Type.isNumeric('42'); // true
|
|
110
|
+
*
|
|
111
|
+
* // Проверка объектов и символов
|
|
112
|
+
* Type.isObject({}); // true
|
|
113
|
+
* Type.isSymbol(Symbol('symbol')); // true
|
|
114
|
+
*
|
|
115
|
+
* // Проверка функций и классов
|
|
116
|
+
* function test() {}
|
|
117
|
+
* class MyClass {}
|
|
118
|
+
* Type.isFunction(test); // true
|
|
119
|
+
* Type.isClass(MyClass); // true
|
|
120
|
+
* ```
|
|
121
|
+
*/
|
|
122
|
+
class Type {
|
|
123
|
+
/**
|
|
124
|
+
* Константа, представляющая значение null.
|
|
125
|
+
* @type {string}
|
|
126
|
+
* @readonly
|
|
127
|
+
*/
|
|
128
|
+
static NULL = 'null';
|
|
129
|
+
|
|
130
|
+
/**
|
|
131
|
+
* Константа, представляющая значение NaN (Not-a-Number).
|
|
132
|
+
* @type {string}
|
|
133
|
+
* @readonly
|
|
134
|
+
*/
|
|
135
|
+
static NAN = 'NaN';
|
|
136
|
+
|
|
137
|
+
/**
|
|
138
|
+
* Константа, представляющая значение undefined.
|
|
139
|
+
* @type {string}
|
|
140
|
+
* @readonly
|
|
141
|
+
*/
|
|
142
|
+
static UNDEFINED = 'undefined';
|
|
143
|
+
|
|
144
|
+
/**
|
|
145
|
+
* Константа, представляющая значение Infinity.
|
|
146
|
+
* @type {string}
|
|
147
|
+
* @readonly
|
|
148
|
+
*/
|
|
149
|
+
static INFINITY = 'infinity';
|
|
150
|
+
|
|
151
|
+
/**
|
|
152
|
+
* Константа, представляющая тип boolean.
|
|
153
|
+
* @type {string}
|
|
154
|
+
* @readonly
|
|
155
|
+
*/
|
|
156
|
+
static BOOLEAN = 'boolean';
|
|
157
|
+
|
|
158
|
+
/**
|
|
159
|
+
* Константа, представляющая тип integer (целое число).
|
|
160
|
+
* @type {string}
|
|
161
|
+
* @readonly
|
|
162
|
+
*/
|
|
163
|
+
static INTEGER = 'integer';
|
|
164
|
+
|
|
165
|
+
/**
|
|
166
|
+
* Константа, представляющая тип bigint (большое целое число).
|
|
167
|
+
* @type {string}
|
|
168
|
+
* @readonly
|
|
169
|
+
*/
|
|
170
|
+
static BIGINT = 'bigint';
|
|
171
|
+
|
|
172
|
+
/**
|
|
173
|
+
* Константа, представляющая тип float (число с плавающей запятой).
|
|
174
|
+
* @type {string}
|
|
175
|
+
* @readonly
|
|
176
|
+
*/
|
|
177
|
+
static FLOAT = 'float';
|
|
178
|
+
|
|
179
|
+
/**
|
|
180
|
+
* Константа, представляющая тип string (строка).
|
|
181
|
+
* @type {string}
|
|
182
|
+
* @readonly
|
|
183
|
+
*/
|
|
184
|
+
static STRING = 'string';
|
|
185
|
+
|
|
186
|
+
/**
|
|
187
|
+
* Константа, представляющая тип symbol (символ).
|
|
188
|
+
* @type {string}
|
|
189
|
+
* @readonly
|
|
190
|
+
*/
|
|
191
|
+
static SYMBOL = 'symbol';
|
|
192
|
+
|
|
193
|
+
/**
|
|
194
|
+
* Константа, представляющая тип class (класс).
|
|
195
|
+
* @type {string}
|
|
196
|
+
* @readonly
|
|
197
|
+
*/
|
|
198
|
+
static CLASS = 'class';
|
|
199
|
+
|
|
200
|
+
/**
|
|
201
|
+
* Константа, представляющая тип function (функция).
|
|
202
|
+
* @type {string}
|
|
203
|
+
* @readonly
|
|
204
|
+
*/
|
|
205
|
+
static FUNCTION = 'function';
|
|
206
|
+
|
|
207
|
+
/**
|
|
208
|
+
* Константа, представляющая тип array (массив).
|
|
209
|
+
* @type {string}
|
|
210
|
+
* @readonly
|
|
211
|
+
*/
|
|
212
|
+
static ARRAY = 'array';
|
|
213
|
+
|
|
214
|
+
/**
|
|
215
|
+
* Константа, представляющая тип object (объект).
|
|
216
|
+
* @type {string}
|
|
217
|
+
* @readonly
|
|
218
|
+
*/
|
|
219
|
+
static OBJECT = 'object';
|
|
220
|
+
|
|
221
|
+
/**
|
|
222
|
+
* Проверяет, является ли значение массивом, и выбрасывает ошибку с указанным сообщением, если это не так.
|
|
223
|
+
*
|
|
224
|
+
* ### Описание
|
|
225
|
+
*
|
|
226
|
+
* Метод `expectArray` используется для проверки, является ли переданное значение массивом.
|
|
227
|
+
* Если значение не является массивом, метод выбрасывает ошибку типа `TypeError` с указанным сообщением.
|
|
228
|
+
*
|
|
229
|
+
* ### Параметры
|
|
230
|
+
*
|
|
231
|
+
* - `value` (any): Значение для проверки.
|
|
232
|
+
* - `message` (string): Сообщение об ошибке, если значение не является массивом. По умолчанию пустая строка.
|
|
233
|
+
*
|
|
234
|
+
* ### Возвращаемое значение
|
|
235
|
+
*
|
|
236
|
+
* Возвращает `true`, если значение является массивом.
|
|
237
|
+
*
|
|
238
|
+
* ### Примеры использования
|
|
239
|
+
*
|
|
240
|
+
* 1. Проверка значения, являющегося массивом:
|
|
241
|
+
*
|
|
242
|
+
* ```js
|
|
243
|
+
* const array = [1, 2, 3];
|
|
244
|
+
* const result = Type.expectArray(array);
|
|
245
|
+
* console.log(result); // true
|
|
246
|
+
* ```
|
|
247
|
+
*
|
|
248
|
+
* 2. Проверка значения, не являющегося массивом:
|
|
249
|
+
*
|
|
250
|
+
* ```js
|
|
251
|
+
* try {
|
|
252
|
+
* const result = Type.expectArray('not an array', 'Значение должно быть массивом.');
|
|
253
|
+
* } catch (e) {
|
|
254
|
+
* console.error(e.message); // Значение должно быть массивом.
|
|
255
|
+
* }
|
|
256
|
+
* ```
|
|
257
|
+
*
|
|
258
|
+
* 3. Проверка значения с использованием пользовательского сообщения об ошибке:
|
|
259
|
+
*
|
|
260
|
+
* ```js
|
|
261
|
+
* try {
|
|
262
|
+
* const result = Type.expectArray(123, 'Ожидался массив.');
|
|
263
|
+
* } catch (e) {
|
|
264
|
+
* console.error(e.message); // Ожидался массив.
|
|
265
|
+
* }
|
|
266
|
+
* ```
|
|
267
|
+
*
|
|
268
|
+
* @param {any} value Значение для проверки.
|
|
269
|
+
* @param {string} [message=''] Сообщение об ошибке, если значение не является массивом.
|
|
270
|
+
* @returns {boolean} Возвращает `true`, если значение является массивом.
|
|
271
|
+
* @throws {TypeError} Если значение не является массивом или если параметр `message` не является строкой.
|
|
272
|
+
*/
|
|
273
|
+
static expectArray(value, message = '') {
|
|
274
|
+
return expect_array(value, message);
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
/**
|
|
278
|
+
* Проверяет, является ли значение ассоциативным массивом, и выбрасывает ошибку с указанным сообщением, если это не так.
|
|
279
|
+
*
|
|
280
|
+
* ### Описание
|
|
281
|
+
*
|
|
282
|
+
* Метод `expectAssoc` используется для проверки, является ли переданное значение ассоциативным массивом.
|
|
283
|
+
* Если значение не является ассоциативным массивом, метод выбрасывает ошибку типа `TypeError` с указанным сообщением.
|
|
284
|
+
*
|
|
285
|
+
* ### Параметры
|
|
286
|
+
*
|
|
287
|
+
* - `value` (any): Значение для проверки.
|
|
288
|
+
* - `message` (string): Сообщение об ошибке, если значение не является ассоциативным массивом. По умолчанию пустая строка.
|
|
289
|
+
*
|
|
290
|
+
* ### Возвращаемое значение
|
|
291
|
+
*
|
|
292
|
+
* Возвращает `true`, если значение является ассоциативным массивом.
|
|
293
|
+
*
|
|
294
|
+
* ### Примеры использования
|
|
295
|
+
*
|
|
296
|
+
* 1. Проверка значения, являющегося ассоциативным массивом:
|
|
297
|
+
*
|
|
298
|
+
* ```js
|
|
299
|
+
* const assoc = { a: 1, b: 2, c: 3 };
|
|
300
|
+
* const result = Type.expectAssoc(assoc);
|
|
301
|
+
* console.log(result); // true
|
|
302
|
+
* ```
|
|
303
|
+
*
|
|
304
|
+
* 2. Проверка значения, не являющегося ассоциативным массивом:
|
|
305
|
+
*
|
|
306
|
+
* ```js
|
|
307
|
+
* try {
|
|
308
|
+
* const result = Type.expectAssoc([1, 2, 3], 'Значение должно быть ассоциативным массивом.');
|
|
309
|
+
* } catch (e) {
|
|
310
|
+
* console.error(e.message); // Значение должно быть ассоциативным массивом.
|
|
311
|
+
* }
|
|
312
|
+
* ```
|
|
313
|
+
*
|
|
314
|
+
* 3. Проверка значения с использованием пользовательского сообщения об ошибке:
|
|
315
|
+
*
|
|
316
|
+
* ```js
|
|
317
|
+
* try {
|
|
318
|
+
* const result = Type.expectAssoc(123, 'Ожидался ассоциативный массив.');
|
|
319
|
+
* } catch (e) {
|
|
320
|
+
* console.error(e.message); // Ожидался ассоциативный массив.
|
|
321
|
+
* }
|
|
322
|
+
* ```
|
|
323
|
+
*
|
|
324
|
+
* @param {any} value Значение для проверки.
|
|
325
|
+
* @param {string} [message=''] Сообщение об ошибке, если значение не является ассоциативным массивом.
|
|
326
|
+
* @returns {boolean} Возвращает `true`, если значение является ассоциативным массивом.
|
|
327
|
+
* @throws {TypeError} Если значение не является ассоциативным массивом или если параметр `message` не является строкой.
|
|
328
|
+
*/
|
|
329
|
+
static expectAssoc(value, message = '') {
|
|
330
|
+
return expect_assoc(value, message);
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
/**
|
|
334
|
+
* Проверяет, является ли значение BigInt, и выбрасывает ошибку с указанным сообщением, если это не так.
|
|
335
|
+
*
|
|
336
|
+
* ### Описание
|
|
337
|
+
*
|
|
338
|
+
* Метод `expectBigInt` используется для проверки, является ли переданное значение BigInt.
|
|
339
|
+
* Если значение не является BigInt, метод выбрасывает ошибку типа `TypeError` с указанным сообщением.
|
|
340
|
+
*
|
|
341
|
+
* ### Параметры
|
|
342
|
+
*
|
|
343
|
+
* - `value` (any): Значение для проверки.
|
|
344
|
+
* - `message` (string): Сообщение об ошибке, если значение не является BigInt. По умолчанию пустая строка.
|
|
345
|
+
*
|
|
346
|
+
* ### Возвращаемое значение
|
|
347
|
+
*
|
|
348
|
+
* Возвращает `true`, если значение является BigInt.
|
|
349
|
+
*
|
|
350
|
+
* ### Примеры использования
|
|
351
|
+
*
|
|
352
|
+
* 1. Проверка значения, являющегося BigInt:
|
|
353
|
+
*
|
|
354
|
+
* ```js
|
|
355
|
+
* const value = 123n;
|
|
356
|
+
* const result = Type.expectBigInt(value);
|
|
357
|
+
* console.log(result); // true
|
|
358
|
+
* ```
|
|
359
|
+
*
|
|
360
|
+
* 2. Проверка значения, не являющегося BigInt:
|
|
361
|
+
*
|
|
362
|
+
* ```js
|
|
363
|
+
* try {
|
|
364
|
+
* const result = Type.expectBigInt(123, 'Значение должно быть BigInt.');
|
|
365
|
+
* } catch (e) {
|
|
366
|
+
* console.error(e.message); // Значение должно быть BigInt.
|
|
367
|
+
* }
|
|
368
|
+
* ```
|
|
369
|
+
*
|
|
370
|
+
* 3. Проверка значения с использованием пользовательского сообщения об ошибке:
|
|
371
|
+
*
|
|
372
|
+
* ```js
|
|
373
|
+
* try {
|
|
374
|
+
* const result = Type.expectBigInt('123', 'Ожидался BigInt.');
|
|
375
|
+
* } catch (e) {
|
|
376
|
+
* console.error(e.message); // Ожидался BigInt.
|
|
377
|
+
* }
|
|
378
|
+
* ```
|
|
379
|
+
*
|
|
380
|
+
* @param {any} value Значение для проверки.
|
|
381
|
+
* @param {string} [message=''] Сообщение об ошибке, если значение не является BigInt.
|
|
382
|
+
* @returns {boolean} Возвращает `true`, если значение является BigInt.
|
|
383
|
+
* @throws {TypeError} Если значение не является BigInt или если параметр `message` не является строкой.
|
|
384
|
+
*/
|
|
385
|
+
static expectBigInt(value, message = '') {
|
|
386
|
+
return expect_bigint(value, message);
|
|
387
|
+
}
|
|
388
|
+
|
|
389
|
+
/**
|
|
390
|
+
* Проверяет, является ли значение логическим типом, и выбрасывает ошибку с указанным сообщением, если это не так.
|
|
391
|
+
*
|
|
392
|
+
* ### Описание
|
|
393
|
+
*
|
|
394
|
+
* Метод `expectBool` используется для проверки, является ли переданное значение логическим типом.
|
|
395
|
+
* Если значение не является логическим типом, метод выбрасывает ошибку типа `TypeError` с указанным сообщением.
|
|
396
|
+
*
|
|
397
|
+
* ### Параметры
|
|
398
|
+
*
|
|
399
|
+
* - `value` (any): Значение для проверки.
|
|
400
|
+
* - `message` (string): Сообщение об ошибке, если значение не является логическим типом. По умолчанию пустая строка.
|
|
401
|
+
*
|
|
402
|
+
* ### Возвращаемое значение
|
|
403
|
+
*
|
|
404
|
+
* Возвращает `true`, если значение является логическим типом.
|
|
405
|
+
*
|
|
406
|
+
* ### Примеры использования
|
|
407
|
+
*
|
|
408
|
+
* 1. Проверка значения, являющегося логическим типом:
|
|
409
|
+
*
|
|
410
|
+
* ```js
|
|
411
|
+
* const value = true;
|
|
412
|
+
* const result = Type.expectBool(value);
|
|
413
|
+
* console.log(result); // true
|
|
414
|
+
* ```
|
|
415
|
+
*
|
|
416
|
+
* 2. Проверка значения, не являющегося логическим типом:
|
|
417
|
+
*
|
|
418
|
+
* ```js
|
|
419
|
+
* try {
|
|
420
|
+
* const result = Type.expectBool(123, 'Значение должно быть логическим типом.');
|
|
421
|
+
* } catch (e) {
|
|
422
|
+
* console.error(e.message); // Значение должно быть логическим типом.
|
|
423
|
+
* }
|
|
424
|
+
* ```
|
|
425
|
+
*
|
|
426
|
+
* 3. Проверка значения с использованием пользовательского сообщения об ошибке:
|
|
427
|
+
*
|
|
428
|
+
* ```js
|
|
429
|
+
* try {
|
|
430
|
+
* const result = Type.expectBool('true', 'Ожидался логический тип.');
|
|
431
|
+
* } catch (e) {
|
|
432
|
+
* console.error(e.message); // Ожидался логический тип.
|
|
433
|
+
* }
|
|
434
|
+
* ```
|
|
435
|
+
*
|
|
436
|
+
* @param {any} value Значение для проверки.
|
|
437
|
+
* @param {string} [message=''] Сообщение об ошибке, если значение не является логическим типом.
|
|
438
|
+
* @returns {boolean} Возвращает `true`, если значение является логическим типом.
|
|
439
|
+
* @throws {TypeError} Если значение не является логическим типом или если параметр `message` не является строкой.
|
|
440
|
+
*/
|
|
441
|
+
static expectBool(value, message = '') {
|
|
442
|
+
return expect_bool(value, message);
|
|
443
|
+
}
|
|
444
|
+
|
|
445
|
+
/**
|
|
446
|
+
* Проверяет, является ли значение логическим типом, и выбрасывает ошибку с указанным сообщением, если это не так.
|
|
447
|
+
*
|
|
448
|
+
* ### Описание
|
|
449
|
+
*
|
|
450
|
+
* Метод `expectBoolean` используется для проверки, является ли переданное значение логическим типом.
|
|
451
|
+
* Если значение не является логическим типом, метод выбрасывает ошибку типа `TypeError` с указанным сообщением.
|
|
452
|
+
*
|
|
453
|
+
* ### Параметры
|
|
454
|
+
*
|
|
455
|
+
* - `value` (any): Значение для проверки.
|
|
456
|
+
* - `message` (string): Сообщение об ошибке, если значение не является логическим типом. По умолчанию пустая строка.
|
|
457
|
+
*
|
|
458
|
+
* ### Возвращаемое значение
|
|
459
|
+
*
|
|
460
|
+
* Возвращает `true`, если значение является логическим типом.
|
|
461
|
+
*
|
|
462
|
+
* ### Примеры использования
|
|
463
|
+
*
|
|
464
|
+
* 1. Проверка значения, являющегося логическим типом:
|
|
465
|
+
*
|
|
466
|
+
* ```js
|
|
467
|
+
* const value = true;
|
|
468
|
+
* const result = Type.expectBoolean(value);
|
|
469
|
+
* console.log(result); // true
|
|
470
|
+
* ```
|
|
471
|
+
*
|
|
472
|
+
* 2. Проверка значения, не являющегося логическим типом:
|
|
473
|
+
*
|
|
474
|
+
* ```js
|
|
475
|
+
* try {
|
|
476
|
+
* const result = Type.expectBoolean(123, 'Значение должно быть логическим типом.');
|
|
477
|
+
* } catch (e) {
|
|
478
|
+
* console.error(e.message); // Значение должно быть логическим типом.
|
|
479
|
+
* }
|
|
480
|
+
* ```
|
|
481
|
+
*
|
|
482
|
+
* 3. Проверка значения с использованием пользовательского сообщения об ошибке:
|
|
483
|
+
*
|
|
484
|
+
* ```js
|
|
485
|
+
* try {
|
|
486
|
+
* const result = Type.expectBoolean('true', 'Ожидался логический тип.');
|
|
487
|
+
* } catch (e) {
|
|
488
|
+
* console.error(e.message); // Ожидался логический тип.
|
|
489
|
+
* }
|
|
490
|
+
* ```
|
|
491
|
+
*
|
|
492
|
+
* @param {any} value Значение для проверки.
|
|
493
|
+
* @param {string} [message=''] Сообщение об ошибке, если значение не является логическим типом.
|
|
494
|
+
* @returns {boolean} Возвращает `true`, если значение является логическим типом.
|
|
495
|
+
* @throws {TypeError} Если значение не является логическим типом или если параметр `message` не является строкой.
|
|
496
|
+
*/
|
|
497
|
+
static expectBoolean(value, message = '') {
|
|
498
|
+
return expect_bool(value, message);
|
|
499
|
+
}
|
|
500
|
+
|
|
501
|
+
/**
|
|
502
|
+
* Проверяет, является ли значение символом, и выбрасывает ошибку с указанным сообщением, если это не так.
|
|
503
|
+
*
|
|
504
|
+
* ### Описание
|
|
505
|
+
*
|
|
506
|
+
* Метод `expectChar` используется для проверки, является ли переданное значение символом.
|
|
507
|
+
* Если значение не является символом, метод выбрасывает ошибку типа `TypeError` с указанным сообщением.
|
|
508
|
+
*
|
|
509
|
+
* ### Параметры
|
|
510
|
+
*
|
|
511
|
+
* - `value` (any): Значение для проверки.
|
|
512
|
+
* - `message` (string): Сообщение об ошибке, если значение не является символом. По умолчанию пустая строка.
|
|
513
|
+
*
|
|
514
|
+
* ### Возвращаемое значение
|
|
515
|
+
*
|
|
516
|
+
* Возвращает `true`, если значение является символом.
|
|
517
|
+
*
|
|
518
|
+
* ### Примеры использования
|
|
519
|
+
*
|
|
520
|
+
* 1. Проверка значения, являющегося символом:
|
|
521
|
+
*
|
|
522
|
+
* ```js
|
|
523
|
+
* const value = 'a';
|
|
524
|
+
* const result = Type.expectChar(value);
|
|
525
|
+
* console.log(result); // true
|
|
526
|
+
* ```
|
|
527
|
+
*
|
|
528
|
+
* 2. Проверка значения, не являющегося символом:
|
|
529
|
+
*
|
|
530
|
+
* ```js
|
|
531
|
+
* try {
|
|
532
|
+
* const result = Type.expectChar('abc', 'Значение должно быть символом.');
|
|
533
|
+
* } catch (e) {
|
|
534
|
+
* console.error(e.message); // Значение должно быть символом.
|
|
535
|
+
* }
|
|
536
|
+
* ```
|
|
537
|
+
*
|
|
538
|
+
* 3. Проверка значения с использованием пользовательского сообщения об ошибке:
|
|
539
|
+
*
|
|
540
|
+
* ```js
|
|
541
|
+
* try {
|
|
542
|
+
* const result = Type.expectChar(123, 'Ожидался символ.');
|
|
543
|
+
* } catch (e) {
|
|
544
|
+
* console.error(e.message); // Ожидался символ.
|
|
545
|
+
* }
|
|
546
|
+
* ```
|
|
547
|
+
*
|
|
548
|
+
* @param {any} value Значение для проверки.
|
|
549
|
+
* @param {string} [message=''] Сообщение об ошибке, если значение не является символом.
|
|
550
|
+
* @returns {boolean} Возвращает `true`, если значение является символом.
|
|
551
|
+
* @throws {TypeError} Если значение не является символом или если параметр `message` не является строкой.
|
|
552
|
+
*/
|
|
553
|
+
static expectChar(value, message = '') {
|
|
554
|
+
return expect_char(value, message);
|
|
555
|
+
}
|
|
556
|
+
|
|
557
|
+
/**
|
|
558
|
+
* Проверяет, является ли значение классом, и выбрасывает ошибку с указанным сообщением, если это не так.
|
|
559
|
+
*
|
|
560
|
+
* ### Описание
|
|
561
|
+
*
|
|
562
|
+
* Метод `expectClass` используется для проверки, является ли переданное значение классом.
|
|
563
|
+
* Если значение не является классом, метод выбрасывает ошибку типа `TypeError` с указанным сообщением.
|
|
564
|
+
*
|
|
565
|
+
* ### Параметры
|
|
566
|
+
*
|
|
567
|
+
* - `value` (any): Значение для проверки.
|
|
568
|
+
* - `message` (string): Сообщение об ошибке, если значение не является классом. По умолчанию пустая строка.
|
|
569
|
+
*
|
|
570
|
+
* ### Возвращаемое значение
|
|
571
|
+
*
|
|
572
|
+
* Возвращает `true`, если значение является классом.
|
|
573
|
+
*
|
|
574
|
+
* ### Примеры использования
|
|
575
|
+
*
|
|
576
|
+
* 1. Проверка значения, являющегося классом:
|
|
577
|
+
*
|
|
578
|
+
* ```js
|
|
579
|
+
* class MyClass {}
|
|
580
|
+
* const result = Type.expectClass(MyClass);
|
|
581
|
+
* console.log(result); // true
|
|
582
|
+
* ```
|
|
583
|
+
*
|
|
584
|
+
* 2. Проверка значения, не являющегося классом:
|
|
585
|
+
*
|
|
586
|
+
* ```js
|
|
587
|
+
* try {
|
|
588
|
+
* const result = Type.expectClass('not a class', 'Значение должно быть классом.');
|
|
589
|
+
* } catch (e) {
|
|
590
|
+
* console.error(e.message); // Значение должно быть классом.
|
|
591
|
+
* }
|
|
592
|
+
* ```
|
|
593
|
+
*
|
|
594
|
+
* 3. Проверка значения с использованием пользовательского сообщения об ошибке:
|
|
595
|
+
*
|
|
596
|
+
* ```js
|
|
597
|
+
* try {
|
|
598
|
+
* const result = Type.expectClass(123, 'Ожидался класс.');
|
|
599
|
+
* } catch (e) {
|
|
600
|
+
* console.error(e.message); // Ожидался класс.
|
|
601
|
+
* }
|
|
602
|
+
* ```
|
|
603
|
+
*
|
|
604
|
+
* @param {any} value Значение для проверки.
|
|
605
|
+
* @param {string} [message=''] Сообщение об ошибке, если значение не является классом.
|
|
606
|
+
* @returns {boolean} Возвращает `true`, если значение является классом.
|
|
607
|
+
* @throws {TypeError} Если значение не является классом или если параметр `message` не является строкой.
|
|
608
|
+
*/
|
|
609
|
+
static expectClass(value, message = '') {
|
|
610
|
+
return expect_class(value, message);
|
|
611
|
+
}
|
|
612
|
+
|
|
613
|
+
/**
|
|
614
|
+
* Проверяет, является ли значение числом с плавающей запятой, и выбрасывает ошибку с указанным сообщением, если это не так.
|
|
615
|
+
*
|
|
616
|
+
* ### Описание
|
|
617
|
+
*
|
|
618
|
+
* Метод `expectFloat` используется для проверки, является ли переданное значение числом с плавающей запятой.
|
|
619
|
+
* Если значение не является числом с плавающей запятой, метод выбрасывает ошибку типа `TypeError` с указанным сообщением.
|
|
620
|
+
*
|
|
621
|
+
* ### Параметры
|
|
622
|
+
*
|
|
623
|
+
* - `value` (any): Значение для проверки.
|
|
624
|
+
* - `message` (string): Сообщение об ошибке, если значение не является числом с плавающей запятой. По умолчанию пустая строка.
|
|
625
|
+
*
|
|
626
|
+
* ### Возвращаемое значение
|
|
627
|
+
*
|
|
628
|
+
* Возвращает `true`, если значение является числом с плавающей запятой.
|
|
629
|
+
*
|
|
630
|
+
* ### Примеры использования
|
|
631
|
+
*
|
|
632
|
+
* 1. Проверка значения, являющегося числом с плавающей запятой:
|
|
633
|
+
*
|
|
634
|
+
* ```js
|
|
635
|
+
* const value = 123.45;
|
|
636
|
+
* const result = Type.expectFloat(value);
|
|
637
|
+
* console.log(result); // true
|
|
638
|
+
* ```
|
|
639
|
+
*
|
|
640
|
+
* 2. Проверка значения, не являющегося числом с плавающей запятой:
|
|
641
|
+
*
|
|
642
|
+
* ```js
|
|
643
|
+
* try {
|
|
644
|
+
* const result = Type.expectFloat('123.45', 'Значение должно быть числом с плавающей запятой.');
|
|
645
|
+
* } catch (e) {
|
|
646
|
+
* console.error(e.message); // Значение должно быть числом с плавающей запятой.
|
|
647
|
+
* }
|
|
648
|
+
* ```
|
|
649
|
+
*
|
|
650
|
+
* 3. Проверка значения с использованием пользовательского сообщения об ошибке:
|
|
651
|
+
*
|
|
652
|
+
* ```js
|
|
653
|
+
* try {
|
|
654
|
+
* const result = Type.expectFloat(123, 'Ожидалось число с плавающей запятой.');
|
|
655
|
+
* } catch (e) {
|
|
656
|
+
* console.error(e.message); // Ожидалось число с плавающей запятой.
|
|
657
|
+
* }
|
|
658
|
+
* ```
|
|
659
|
+
*
|
|
660
|
+
* @param {any} value Значение для проверки.
|
|
661
|
+
* @param {string} [message=''] Сообщение об ошибке, если значение не является числом с плавающей запятой.
|
|
662
|
+
* @returns {boolean} Возвращает `true`, если значение является числом с плавающей запятой.
|
|
663
|
+
* @throws {TypeError} Если значение не является числом с плавающей запятой или если параметр `message` не является строкой.
|
|
664
|
+
*/
|
|
665
|
+
static expectFloat(value, message = '') {
|
|
666
|
+
return expect_float(value, message);
|
|
667
|
+
}
|
|
668
|
+
|
|
669
|
+
/**
|
|
670
|
+
* Проверяет, является ли значение функцией, и выбрасывает ошибку с указанным сообщением, если это не так.
|
|
671
|
+
*
|
|
672
|
+
* ### Описание
|
|
673
|
+
*
|
|
674
|
+
* Метод `expectFunction` используется для проверки, является ли переданное значение функцией.
|
|
675
|
+
* Если значение не является функцией, метод выбрасывает ошибку типа `TypeError` с указанным сообщением.
|
|
676
|
+
*
|
|
677
|
+
* ### Параметры
|
|
678
|
+
*
|
|
679
|
+
* - `value` (any): Значение для проверки.
|
|
680
|
+
* - `message` (string): Сообщение об ошибке, если значение не является функцией. По умолчанию пустая строка.
|
|
681
|
+
*
|
|
682
|
+
* ### Возвращаемое значение
|
|
683
|
+
*
|
|
684
|
+
* Возвращает `true`, если значение является функцией.
|
|
685
|
+
*
|
|
686
|
+
* ### Примеры использования
|
|
687
|
+
*
|
|
688
|
+
* 1. Проверка значения, являющегося функцией:
|
|
689
|
+
*
|
|
690
|
+
* ```js
|
|
691
|
+
* function myFunction() {}
|
|
692
|
+
* const result = Type.expectFunction(myFunction);
|
|
693
|
+
* console.log(result); // true
|
|
694
|
+
* ```
|
|
695
|
+
*
|
|
696
|
+
* 2. Проверка значения, не являющегося функцией:
|
|
697
|
+
*
|
|
698
|
+
* ```js
|
|
699
|
+
* try {
|
|
700
|
+
* const result = Type.expectFunction(123, 'Значение должно быть функцией.');
|
|
701
|
+
* } catch (e) {
|
|
702
|
+
* console.error(e.message); // Значение должно быть функцией.
|
|
703
|
+
* }
|
|
704
|
+
* ```
|
|
705
|
+
*
|
|
706
|
+
* 3. Проверка значения с использованием пользовательского сообщения об ошибке:
|
|
707
|
+
*
|
|
708
|
+
* ```js
|
|
709
|
+
* try {
|
|
710
|
+
* const result = Type.expectFunction('not a function', 'Ожидалась функция.');
|
|
711
|
+
* } catch (e) {
|
|
712
|
+
* console.error(e.message); // Ожидалась функция.
|
|
713
|
+
* }
|
|
714
|
+
* ```
|
|
715
|
+
*
|
|
716
|
+
* @param {any} value Значение для проверки.
|
|
717
|
+
* @param {string} [message=''] Сообщение об ошибке, если значение не является функцией.
|
|
718
|
+
* @returns {boolean} Возвращает `true`, если значение является функцией.
|
|
719
|
+
* @throws {TypeError} Если значение не является функцией или если параметр `message` не является строкой.
|
|
720
|
+
*/
|
|
721
|
+
static expectFunction(value, message = '') {
|
|
722
|
+
return expect_function(value, message);
|
|
723
|
+
}
|
|
724
|
+
|
|
725
|
+
/**
|
|
726
|
+
* Проверяет, является ли значение бесконечностью, и выбрасывает ошибку с указанным сообщением, если это не так.
|
|
727
|
+
*
|
|
728
|
+
* ### Описание
|
|
729
|
+
*
|
|
730
|
+
* Метод `expectInfinity` используется для проверки, является ли переданное значение бесконечностью.
|
|
731
|
+
* Если значение не является бесконечностью, метод выбрасывает ошибку типа `TypeError` с указанным сообщением.
|
|
732
|
+
*
|
|
733
|
+
* ### Параметры
|
|
734
|
+
*
|
|
735
|
+
* - `value` (any): Значение для проверки.
|
|
736
|
+
* - `message` (string): Сообщение об ошибке, если значение не является бесконечностью. По умолчанию пустая строка.
|
|
737
|
+
*
|
|
738
|
+
* ### Возвращаемое значение
|
|
739
|
+
*
|
|
740
|
+
* Возвращает `true`, если значение является бесконечностью.
|
|
741
|
+
*
|
|
742
|
+
* ### Примеры использования
|
|
743
|
+
*
|
|
744
|
+
* 1. Проверка значения, являющегося бесконечностью:
|
|
745
|
+
*
|
|
746
|
+
* ```js
|
|
747
|
+
* const value = Infinity;
|
|
748
|
+
* const result = Type.expectInfinity(value);
|
|
749
|
+
* console.log(result); // true
|
|
750
|
+
* ```
|
|
751
|
+
*
|
|
752
|
+
* 2. Проверка значения, не являющегося бесконечностью:
|
|
753
|
+
*
|
|
754
|
+
* ```js
|
|
755
|
+
* try {
|
|
756
|
+
* const result = Type.expectInfinity(123, 'Значение должно быть бесконечностью.');
|
|
757
|
+
* } catch (e) {
|
|
758
|
+
* console.error(e.message); // Значение должно быть бесконечностью.
|
|
759
|
+
* }
|
|
760
|
+
* ```
|
|
761
|
+
*
|
|
762
|
+
* 3. Проверка значения с использованием пользовательского сообщения об ошибке:
|
|
763
|
+
*
|
|
764
|
+
* ```js
|
|
765
|
+
* try {
|
|
766
|
+
* const result = Type.expectInfinity('123', 'Ожидалась бесконечность.');
|
|
767
|
+
* } catch (e) {
|
|
768
|
+
* console.error(e.message); // Ожидалась бесконечность.
|
|
769
|
+
* }
|
|
770
|
+
* ```
|
|
771
|
+
*
|
|
772
|
+
* @param {any} value Значение для проверки.
|
|
773
|
+
* @param {string} [message=''] Сообщение об ошибке, если значение не является бесконечностью.
|
|
774
|
+
* @returns {boolean} Возвращает `true`, если значение является бесконечностью.
|
|
775
|
+
* @throws {TypeError} Если значение не является бесконечностью или если параметр `message` не является строкой.
|
|
776
|
+
*/
|
|
777
|
+
static expectInfinity(value, message = '') {
|
|
778
|
+
return expect_infinity(value, message);
|
|
779
|
+
}
|
|
780
|
+
|
|
781
|
+
/**
|
|
782
|
+
* Проверяет, является ли значение целым числом, и выбрасывает ошибку с указанным сообщением, если это не так.
|
|
783
|
+
*
|
|
784
|
+
* ### Описание
|
|
785
|
+
*
|
|
786
|
+
* Метод `expectInt` используется для проверки, является ли переданное значение целым числом.
|
|
787
|
+
* Если значение не является целым числом, метод выбрасывает ошибку типа `TypeError` с указанным сообщением.
|
|
788
|
+
*
|
|
789
|
+
* ### Параметры
|
|
790
|
+
*
|
|
791
|
+
* - `value` (any): Значение для проверки.
|
|
792
|
+
* - `message` (string): Сообщение об ошибке, если значение не является целым числом. По умолчанию пустая строка.
|
|
793
|
+
*
|
|
794
|
+
* ### Возвращаемое значение
|
|
795
|
+
*
|
|
796
|
+
* Возвращает `true`, если значение является целым числом.
|
|
797
|
+
*
|
|
798
|
+
* ### Примеры использования
|
|
799
|
+
*
|
|
800
|
+
* 1. Проверка значения, являющегося целым числом:
|
|
801
|
+
*
|
|
802
|
+
* ```js
|
|
803
|
+
* const value = 123;
|
|
804
|
+
* const result = Type.expectInt(value);
|
|
805
|
+
* console.log(result); // true
|
|
806
|
+
* ```
|
|
807
|
+
*
|
|
808
|
+
* 2. Проверка значения, не являющегося целым числом:
|
|
809
|
+
*
|
|
810
|
+
* ```js
|
|
811
|
+
* try {
|
|
812
|
+
* const result = Type.expectInt(123.45, 'Значение должно быть целым числом.');
|
|
813
|
+
* } catch (e) {
|
|
814
|
+
* console.error(e.message); // Значение должно быть целым числом.
|
|
815
|
+
* }
|
|
816
|
+
* ```
|
|
817
|
+
*
|
|
818
|
+
* 3. Проверка значения с использованием пользовательского сообщения об ошибке:
|
|
819
|
+
*
|
|
820
|
+
* ```js
|
|
821
|
+
* try {
|
|
822
|
+
* const result = Type.expectInt('123', 'Ожидалось целое число.');
|
|
823
|
+
* } catch (e) {
|
|
824
|
+
* console.error(e.message); // Ожидалось целое число.
|
|
825
|
+
* }
|
|
826
|
+
* ```
|
|
827
|
+
*
|
|
828
|
+
* @param {any} value Значение для проверки.
|
|
829
|
+
* @param {string} [message=''] Сообщение об ошибке, если значение не является целым числом.
|
|
830
|
+
* @returns {boolean} Возвращает `true`, если значение является целым числом.
|
|
831
|
+
* @throws {TypeError} Если значение не является целым числом или если параметр `message` не является строкой.
|
|
832
|
+
*/
|
|
833
|
+
static expectInt(value, message = '') {
|
|
834
|
+
return expect_int(value, message);
|
|
835
|
+
}
|
|
836
|
+
|
|
837
|
+
/**
|
|
838
|
+
* Проверяет, является ли значение целым числом, и выбрасывает ошибку с указанным сообщением, если это не так.
|
|
839
|
+
*
|
|
840
|
+
* ### Описание
|
|
841
|
+
*
|
|
842
|
+
* Метод `expectInteger` используется для проверки, является ли переданное значение целым числом.
|
|
843
|
+
* Если значение не является целым числом, метод выбрасывает ошибку типа `TypeError` с указанным сообщением.
|
|
844
|
+
*
|
|
845
|
+
* ### Параметры
|
|
846
|
+
*
|
|
847
|
+
* - `value` (any): Значение для проверки.
|
|
848
|
+
* - `message` (string): Сообщение об ошибке, если значение не является целым числом. По умолчанию пустая строка.
|
|
849
|
+
*
|
|
850
|
+
* ### Возвращаемое значение
|
|
851
|
+
*
|
|
852
|
+
* Возвращает `true`, если значение является целым числом.
|
|
853
|
+
*
|
|
854
|
+
* ### Примеры использования
|
|
855
|
+
*
|
|
856
|
+
* 1. Проверка значения, являющегося целым числом:
|
|
857
|
+
*
|
|
858
|
+
* ```js
|
|
859
|
+
* const value = 123;
|
|
860
|
+
* const result = Type.expectInteger(value);
|
|
861
|
+
* console.log(result); // true
|
|
862
|
+
* ```
|
|
863
|
+
*
|
|
864
|
+
* 2. Проверка значения, не являющегося целым числом:
|
|
865
|
+
*
|
|
866
|
+
* ```js
|
|
867
|
+
* try {
|
|
868
|
+
* const result = Type.expectInteger(123.45, 'Значение должно быть целым числом.');
|
|
869
|
+
* } catch (e) {
|
|
870
|
+
* console.error(e.message); // Значение должно быть целым числом.
|
|
871
|
+
* }
|
|
872
|
+
* ```
|
|
873
|
+
*
|
|
874
|
+
* 3. Проверка значения с использованием пользовательского сообщения об ошибке:
|
|
875
|
+
*
|
|
876
|
+
* ```js
|
|
877
|
+
* try {
|
|
878
|
+
* const result = Type.expectInteger('123', 'Ожидалось целое число.');
|
|
879
|
+
* } catch (e) {
|
|
880
|
+
* console.error(e.message); // Ожидалось целое число.
|
|
881
|
+
* }
|
|
882
|
+
* ```
|
|
883
|
+
*
|
|
884
|
+
* @param {any} value Значение для проверки.
|
|
885
|
+
* @param {string} [message=''] Сообщение об ошибке, если значение не является целым числом.
|
|
886
|
+
* @returns {boolean} Возвращает `true`, если значение является целым числом.
|
|
887
|
+
* @throws {TypeError} Если значение не является целым числом или если параметр `message` не является строкой.
|
|
888
|
+
*/
|
|
889
|
+
static expectInteger(value, message = '') {
|
|
890
|
+
return expect_integer(value, message);
|
|
891
|
+
}
|
|
892
|
+
|
|
893
|
+
/**
|
|
894
|
+
* Проверяет, является ли значение списком, и выбрасывает ошибку с указанным сообщением, если это не так.
|
|
895
|
+
*
|
|
896
|
+
* ### Описание
|
|
897
|
+
*
|
|
898
|
+
* Метод `expectList` используется для проверки, является ли переданное значение списком.
|
|
899
|
+
* Если значение не является списком, метод выбрасывает ошибку типа `TypeError` с указанным сообщением.
|
|
900
|
+
*
|
|
901
|
+
* ### Параметры
|
|
902
|
+
*
|
|
903
|
+
* - `value` (any): Значение для проверки.
|
|
904
|
+
* - `message` (string): Сообщение об ошибке, если значение не является списком. По умолчанию пустая строка.
|
|
905
|
+
*
|
|
906
|
+
* ### Возвращаемое значение
|
|
907
|
+
*
|
|
908
|
+
* Возвращает `true`, если значение является списком.
|
|
909
|
+
*
|
|
910
|
+
* ### Примеры использования
|
|
911
|
+
*
|
|
912
|
+
* 1. Проверка значения, являющегося списком:
|
|
913
|
+
*
|
|
914
|
+
* ```js
|
|
915
|
+
* const value = [1, 2, 3];
|
|
916
|
+
* const result = Type.expectList(value);
|
|
917
|
+
* console.log(result); // true
|
|
918
|
+
* ```
|
|
919
|
+
*
|
|
920
|
+
* 2. Проверка значения, не являющегося списком:
|
|
921
|
+
*
|
|
922
|
+
* ```js
|
|
923
|
+
* try {
|
|
924
|
+
* const result = Type.expectList('not a list', 'Значение должно быть списком.');
|
|
925
|
+
* } catch (e) {
|
|
926
|
+
* console.error(e.message); // Значение должно быть списком.
|
|
927
|
+
* }
|
|
928
|
+
* ```
|
|
929
|
+
*
|
|
930
|
+
* 3. Проверка значения с использованием пользовательского сообщения об ошибке:
|
|
931
|
+
*
|
|
932
|
+
* ```js
|
|
933
|
+
* try {
|
|
934
|
+
* const result = Type.expectList(123, 'Ожидался список.');
|
|
935
|
+
* } catch (e) {
|
|
936
|
+
* console.error(e.message); // Ожидался список.
|
|
937
|
+
* }
|
|
938
|
+
* ```
|
|
939
|
+
*
|
|
940
|
+
* @param {any} value Значение для проверки.
|
|
941
|
+
* @param {string} [message=''] Сообщение об ошибке, если значение не является списком.
|
|
942
|
+
* @returns {boolean} Возвращает `true`, если значение является списком.
|
|
943
|
+
* @throws {TypeError} Если значение не является списком или если параметр `message` не является строкой.
|
|
944
|
+
*/
|
|
945
|
+
static expectList(value, message = '') {
|
|
946
|
+
return expect_list(value, message);
|
|
947
|
+
}
|
|
948
|
+
|
|
949
|
+
/**
|
|
950
|
+
* Проверяет, является ли значение null, и выбрасывает ошибку с указанным сообщением, если это не так.
|
|
951
|
+
*
|
|
952
|
+
* ### Описание
|
|
953
|
+
*
|
|
954
|
+
* Метод `expectNull` используется для проверки, является ли переданное значение null.
|
|
955
|
+
* Если значение не является null, метод выбрасывает ошибку типа `TypeError` с указанным сообщением.
|
|
956
|
+
*
|
|
957
|
+
* ### Параметры
|
|
958
|
+
*
|
|
959
|
+
* - `value` (any): Значение для проверки.
|
|
960
|
+
* - `message` (string): Сообщение об ошибке, если значение не является null. По умолчанию пустая строка.
|
|
961
|
+
*
|
|
962
|
+
* ### Возвращаемое значение
|
|
963
|
+
*
|
|
964
|
+
* Возвращает `true`, если значение является null.
|
|
965
|
+
*
|
|
966
|
+
* ### Примеры использования
|
|
967
|
+
*
|
|
968
|
+
* 1. Проверка значения, являющегося null:
|
|
969
|
+
*
|
|
970
|
+
* ```js
|
|
971
|
+
* const value = null;
|
|
972
|
+
* const result = Type.expectNull(value);
|
|
973
|
+
* console.log(result); // true
|
|
974
|
+
* ```
|
|
975
|
+
*
|
|
976
|
+
* 2. Проверка значения, не являющегося null:
|
|
977
|
+
*
|
|
978
|
+
* ```js
|
|
979
|
+
* try {
|
|
980
|
+
* const result = Type.expectNull(123, 'Значение должно быть null.');
|
|
981
|
+
* } catch (e) {
|
|
982
|
+
* console.error(e.message); // Значение должно быть null.
|
|
983
|
+
* }
|
|
984
|
+
* ```
|
|
985
|
+
*
|
|
986
|
+
* 3. Проверка значения с использованием пользовательского сообщения об ошибке:
|
|
987
|
+
*
|
|
988
|
+
* ```js
|
|
989
|
+
* try {
|
|
990
|
+
* const result = Type.expectNull('not null', 'Ожидалось значение null.');
|
|
991
|
+
* } catch (e) {
|
|
992
|
+
* console.error(e.message); // Ожидалось значение null.
|
|
993
|
+
* }
|
|
994
|
+
* ```
|
|
995
|
+
*
|
|
996
|
+
* @param {any} value Значение для проверки.
|
|
997
|
+
* @param {string} [message=''] Сообщение об ошибке, если значение не является null.
|
|
998
|
+
* @returns {boolean} Возвращает `true`, если значение является null.
|
|
999
|
+
* @throws {TypeError} Если значение не является null или если параметр `message` не является строкой.
|
|
1000
|
+
*/
|
|
1001
|
+
static expectNaN(value, message = '') {
|
|
1002
|
+
return expect_nan(value, message);
|
|
1003
|
+
}
|
|
1004
|
+
|
|
1005
|
+
/**
|
|
1006
|
+
* Проверяет, является ли значение null, и выбрасывает ошибку с указанным сообщением, если это не так.
|
|
1007
|
+
*
|
|
1008
|
+
* ### Описание
|
|
1009
|
+
*
|
|
1010
|
+
* Метод `expectNull` используется для проверки, является ли переданное значение null.
|
|
1011
|
+
* Если значение не является null, метод выбрасывает ошибку типа `TypeError` с указанным сообщением.
|
|
1012
|
+
*
|
|
1013
|
+
* ### Параметры
|
|
1014
|
+
*
|
|
1015
|
+
* - `value` (any): Значение для проверки.
|
|
1016
|
+
* - `message` (string): Сообщение об ошибке, если значение не является null. По умолчанию пустая строка.
|
|
1017
|
+
*
|
|
1018
|
+
* ### Возвращаемое значение
|
|
1019
|
+
*
|
|
1020
|
+
* Возвращает `true`, если значение является null.
|
|
1021
|
+
*
|
|
1022
|
+
* ### Примеры использования
|
|
1023
|
+
*
|
|
1024
|
+
* 1. Проверка значения, являющегося null:
|
|
1025
|
+
*
|
|
1026
|
+
* ```js
|
|
1027
|
+
* const value = null;
|
|
1028
|
+
* const result = Type.expectNull(value);
|
|
1029
|
+
* console.log(result); // true
|
|
1030
|
+
* ```
|
|
1031
|
+
*
|
|
1032
|
+
* 2. Проверка значения, не являющегося null:
|
|
1033
|
+
*
|
|
1034
|
+
* ```js
|
|
1035
|
+
* try {
|
|
1036
|
+
* const result = Type.expectNull(123, 'Значение должно быть null.');
|
|
1037
|
+
* } catch (e) {
|
|
1038
|
+
* console.error(e.message); // Значение должно быть null.
|
|
1039
|
+
* }
|
|
1040
|
+
* ```
|
|
1041
|
+
*
|
|
1042
|
+
* 3. Проверка значения с использованием пользовательского сообщения об ошибке:
|
|
1043
|
+
*
|
|
1044
|
+
* ```js
|
|
1045
|
+
* try {
|
|
1046
|
+
* const result = Type.expectNull('not null', 'Ожидалось значение null.');
|
|
1047
|
+
* } catch (e) {
|
|
1048
|
+
* console.error(e.message); // Ожидалось значение null.
|
|
1049
|
+
* }
|
|
1050
|
+
* ```
|
|
1051
|
+
*
|
|
1052
|
+
* @param {any} value Значение для проверки.
|
|
1053
|
+
* @param {string} [message=''] Сообщение об ошибке, если значение не является null.
|
|
1054
|
+
* @returns {boolean} Возвращает `true`, если значение является null.
|
|
1055
|
+
* @throws {TypeError} Если значение не является null или если параметр `message` не является строкой.
|
|
1056
|
+
*/
|
|
1057
|
+
static expectNull(value, message = '') {
|
|
1058
|
+
return expect_null(value, message);
|
|
1059
|
+
}
|
|
1060
|
+
|
|
1061
|
+
/**
|
|
1062
|
+
* Проверяет, является ли значение числом, и выбрасывает ошибку с указанным сообщением, если это не так.
|
|
1063
|
+
*
|
|
1064
|
+
* ### Описание
|
|
1065
|
+
*
|
|
1066
|
+
* Метод `expectNumber` используется для проверки, является ли переданное значение числом.
|
|
1067
|
+
* Если значение не является числом, метод выбрасывает ошибку типа `TypeError` с указанным сообщением.
|
|
1068
|
+
*
|
|
1069
|
+
* ### Параметры
|
|
1070
|
+
*
|
|
1071
|
+
* - `value` (any): Значение для проверки.
|
|
1072
|
+
* - `message` (string): Сообщение об ошибке, если значение не является числом. По умолчанию пустая строка.
|
|
1073
|
+
*
|
|
1074
|
+
* ### Возвращаемое значение
|
|
1075
|
+
*
|
|
1076
|
+
* Возвращает `true`, если значение является числом.
|
|
1077
|
+
*
|
|
1078
|
+
* ### Примеры использования
|
|
1079
|
+
*
|
|
1080
|
+
* 1. Проверка значения, являющегося числом:
|
|
1081
|
+
*
|
|
1082
|
+
* ```js
|
|
1083
|
+
* const value = 123;
|
|
1084
|
+
* const result = Type.expectNumber(value);
|
|
1085
|
+
* console.log(result); // true
|
|
1086
|
+
* ```
|
|
1087
|
+
*
|
|
1088
|
+
* 2. Проверка значения, не являющегося числом:
|
|
1089
|
+
*
|
|
1090
|
+
* ```js
|
|
1091
|
+
* try {
|
|
1092
|
+
* const result = Type.expectNumber('123', 'Значение должно быть числом.');
|
|
1093
|
+
* } catch (e) {
|
|
1094
|
+
* console.error(e.message); // Значение должно быть числом.
|
|
1095
|
+
* }
|
|
1096
|
+
* ```
|
|
1097
|
+
*
|
|
1098
|
+
* 3. Проверка значения с использованием пользовательского сообщения об ошибке:
|
|
1099
|
+
*
|
|
1100
|
+
* ```js
|
|
1101
|
+
* try {
|
|
1102
|
+
* const result = Type.expectNumber('not a number', 'Ожидалось число.');
|
|
1103
|
+
* } catch (e) {
|
|
1104
|
+
* console.error(e.message); // Ожидалось число.
|
|
1105
|
+
* }
|
|
1106
|
+
* ```
|
|
1107
|
+
*
|
|
1108
|
+
* @param {any} value Значение для проверки.
|
|
1109
|
+
* @param {string} [message=''] Сообщение об ошибке, если значение не является числом.
|
|
1110
|
+
* @returns {boolean} Возвращает `true`, если значение является числом.
|
|
1111
|
+
* @throws {TypeError} Если значение не является числом или если параметр `message` не является строкой.
|
|
1112
|
+
*/
|
|
1113
|
+
static expectNumber(value, message = '') {
|
|
1114
|
+
return expect_number(value, message);
|
|
1115
|
+
}
|
|
1116
|
+
|
|
1117
|
+
/**
|
|
1118
|
+
* Проверяет, является ли значение числовым, и выбрасывает ошибку с указанным сообщением, если это не так.
|
|
1119
|
+
*
|
|
1120
|
+
* ### Описание
|
|
1121
|
+
*
|
|
1122
|
+
* Метод `expectNumeric` используется для проверки, является ли переданное значение числовым.
|
|
1123
|
+
* Если значение не является числовым, метод выбрасывает ошибку типа `TypeError` с указанным сообщением.
|
|
1124
|
+
*
|
|
1125
|
+
* ### Параметры
|
|
1126
|
+
*
|
|
1127
|
+
* - `value` (any): Значение для проверки.
|
|
1128
|
+
* - `message` (string): Сообщение об ошибке, если значение не является числовым. По умолчанию пустая строка.
|
|
1129
|
+
*
|
|
1130
|
+
* ### Возвращаемое значение
|
|
1131
|
+
*
|
|
1132
|
+
* Возвращает `true`, если значение является числовым.
|
|
1133
|
+
*
|
|
1134
|
+
* ### Примеры использования
|
|
1135
|
+
*
|
|
1136
|
+
* 1. Проверка значения, являющегося числовым:
|
|
1137
|
+
*
|
|
1138
|
+
* ```js
|
|
1139
|
+
* const value = '123';
|
|
1140
|
+
* const result = Type.expectNumeric(value);
|
|
1141
|
+
* console.log(result); // true
|
|
1142
|
+
* ```
|
|
1143
|
+
*
|
|
1144
|
+
* 2. Проверка значения, не являющегося числовым:
|
|
1145
|
+
*
|
|
1146
|
+
* ```js
|
|
1147
|
+
* try {
|
|
1148
|
+
* const result = Type.expectNumeric('abc', 'Значение должно быть числовым.');
|
|
1149
|
+
* } catch (e) {
|
|
1150
|
+
* console.error(e.message); // Значение должно быть числовым.
|
|
1151
|
+
* }
|
|
1152
|
+
* ```
|
|
1153
|
+
*
|
|
1154
|
+
* 3. Проверка значения с использованием пользовательского сообщения об ошибке:
|
|
1155
|
+
*
|
|
1156
|
+
* ```js
|
|
1157
|
+
* try {
|
|
1158
|
+
* const result = Type.expectNumeric({}, 'Ожидалось числовое значение.');
|
|
1159
|
+
* } catch (e) {
|
|
1160
|
+
* console.error(e.message); // Ожидалось числовое значение.
|
|
1161
|
+
* }
|
|
1162
|
+
* ```
|
|
1163
|
+
*
|
|
1164
|
+
* @param {any} value Значение для проверки.
|
|
1165
|
+
* @param {string} [message=''] Сообщение об ошибке, если значение не является числовым.
|
|
1166
|
+
* @returns {boolean} Возвращает `true`, если значение является числовым.
|
|
1167
|
+
* @throws {TypeError} Если значение не является числовым или если параметр `message` не является строкой.
|
|
1168
|
+
*/
|
|
1169
|
+
static expectNumeric(value, message = '') {
|
|
1170
|
+
return expect_numeric(value, message);
|
|
1171
|
+
}
|
|
1172
|
+
|
|
1173
|
+
/**
|
|
1174
|
+
* Проверяет, является ли значение объектом, и выбрасывает ошибку с указанным сообщением, если это не так.
|
|
1175
|
+
*
|
|
1176
|
+
* ### Описание
|
|
1177
|
+
*
|
|
1178
|
+
* Метод `expectObject` используется для проверки, является ли переданное значение объектом.
|
|
1179
|
+
* Если значение не является объектом, метод выбрасывает ошибку типа `TypeError` с указанным сообщением.
|
|
1180
|
+
*
|
|
1181
|
+
* ### Параметры
|
|
1182
|
+
*
|
|
1183
|
+
* - `value` (any): Значение для проверки.
|
|
1184
|
+
* - `message` (string): Сообщение об ошибке, если значение не является объектом. По умолчанию пустая строка.
|
|
1185
|
+
*
|
|
1186
|
+
* ### Возвращаемое значение
|
|
1187
|
+
*
|
|
1188
|
+
* Возвращает `true`, если значение является объектом.
|
|
1189
|
+
*
|
|
1190
|
+
* ### Примеры использования
|
|
1191
|
+
*
|
|
1192
|
+
* 1. Проверка значения, являющегося объектом:
|
|
1193
|
+
*
|
|
1194
|
+
* ```js
|
|
1195
|
+
* class stdClass {}
|
|
1196
|
+
* const value = new stdClass();
|
|
1197
|
+
* const result = Type.expectObject(value);
|
|
1198
|
+
* console.log(result); // true
|
|
1199
|
+
* ```
|
|
1200
|
+
*
|
|
1201
|
+
* 2. Проверка значения, не являющегося объектом:
|
|
1202
|
+
*
|
|
1203
|
+
* ```js
|
|
1204
|
+
* try {
|
|
1205
|
+
* const result = Type.expectObject(123, 'Значение должно быть объектом.');
|
|
1206
|
+
* } catch (e) {
|
|
1207
|
+
* console.error(e.message); // Значение должно быть объектом.
|
|
1208
|
+
* }
|
|
1209
|
+
* ```
|
|
1210
|
+
*
|
|
1211
|
+
* 3. Проверка значения с использованием пользовательского сообщения об ошибке:
|
|
1212
|
+
*
|
|
1213
|
+
* ```js
|
|
1214
|
+
* try {
|
|
1215
|
+
* const result = Type.expectObject('not an object', 'Ожидался объект.');
|
|
1216
|
+
* } catch (e) {
|
|
1217
|
+
* console.error(e.message); // Ожидался объект.
|
|
1218
|
+
* }
|
|
1219
|
+
* ```
|
|
1220
|
+
*
|
|
1221
|
+
* @param {any} value Значение для проверки.
|
|
1222
|
+
* @param {string} [message=''] Сообщение об ошибке, если значение не является объектом.
|
|
1223
|
+
* @returns {boolean} Возвращает `true`, если значение является объектом.
|
|
1224
|
+
* @throws {TypeError} Если значение не является объектом или если параметр `message` не является строкой.
|
|
1225
|
+
*/
|
|
1226
|
+
static expectObject(value, message = '') {
|
|
1227
|
+
return expect_object(value, message);
|
|
1228
|
+
}
|
|
1229
|
+
|
|
1230
|
+
/**
|
|
1231
|
+
* Проверяет, является ли значение скалярным, и выбрасывает ошибку с указанным сообщением, если это не так.
|
|
1232
|
+
*
|
|
1233
|
+
* ### Описание
|
|
1234
|
+
*
|
|
1235
|
+
* Метод `expectScalar` используется для проверки, является ли переданное значение скалярным.
|
|
1236
|
+
* Если значение не является скалярным, метод выбрасывает ошибку типа `TypeError` с указанным сообщением.
|
|
1237
|
+
*
|
|
1238
|
+
* ### Параметры
|
|
1239
|
+
*
|
|
1240
|
+
* - `value` (any): Значение для проверки.
|
|
1241
|
+
* - `message` (string): Сообщение об ошибке, если значение не является скалярным. По умолчанию пустая строка.
|
|
1242
|
+
*
|
|
1243
|
+
* ### Возвращаемое значение
|
|
1244
|
+
*
|
|
1245
|
+
* Возвращает `true`, если значение является скалярным.
|
|
1246
|
+
*
|
|
1247
|
+
* ### Примеры использования
|
|
1248
|
+
*
|
|
1249
|
+
* 1. Проверка значения, являющегося скалярным:
|
|
1250
|
+
*
|
|
1251
|
+
* ```js
|
|
1252
|
+
* const value = 123;
|
|
1253
|
+
* const result = Type.expectScalar(value);
|
|
1254
|
+
* console.log(result); // true
|
|
1255
|
+
* ```
|
|
1256
|
+
*
|
|
1257
|
+
* 2. Проверка значения, не являющегося скалярным:
|
|
1258
|
+
*
|
|
1259
|
+
* ```js
|
|
1260
|
+
* try {
|
|
1261
|
+
* const result = Type.expectScalar([1, 2, 3], 'Значение должно быть скалярным.');
|
|
1262
|
+
* } catch (e) {
|
|
1263
|
+
* console.error(e.message); // Значение должно быть скалярным.
|
|
1264
|
+
* }
|
|
1265
|
+
* ```
|
|
1266
|
+
*
|
|
1267
|
+
* 3. Проверка значения с использованием пользовательского сообщения об ошибке:
|
|
1268
|
+
*
|
|
1269
|
+
* ```js
|
|
1270
|
+
* try {
|
|
1271
|
+
* const result = Type.expectScalar({}, 'Ожидалось скалярное значение.');
|
|
1272
|
+
* } catch (e) {
|
|
1273
|
+
* console.error(e.message); // Ожидалось скалярное значение.
|
|
1274
|
+
* }
|
|
1275
|
+
* ```
|
|
1276
|
+
*
|
|
1277
|
+
* @param {any} value Значение для проверки.
|
|
1278
|
+
* @param {string} [message=''] Сообщение об ошибке, если значение не является скалярным.
|
|
1279
|
+
* @returns {boolean} Возвращает `true`, если значение является скалярным.
|
|
1280
|
+
* @throws {TypeError} Если значение не является скалярным или если параметр `message` не является строкой.
|
|
1281
|
+
*/
|
|
1282
|
+
static expectScalar(value, message = '') {
|
|
1283
|
+
return expect_scalar(value, message);
|
|
1284
|
+
}
|
|
1285
|
+
|
|
1286
|
+
/**
|
|
1287
|
+
* Проверяет, является ли значение строкой, и выбрасывает ошибку с указанным сообщением, если это не так.
|
|
1288
|
+
*
|
|
1289
|
+
* ### Описание
|
|
1290
|
+
*
|
|
1291
|
+
* Метод `expectString` используется для проверки, является ли переданное значение строкой.
|
|
1292
|
+
* Если значение не является строкой, метод выбрасывает ошибку типа `TypeError` с указанным сообщением.
|
|
1293
|
+
*
|
|
1294
|
+
* ### Параметры
|
|
1295
|
+
*
|
|
1296
|
+
* - `value` (any): Значение для проверки.
|
|
1297
|
+
* - `message` (string): Сообщение об ошибке, если значение не является строкой. По умолчанию пустая строка.
|
|
1298
|
+
*
|
|
1299
|
+
* ### Возвращаемое значение
|
|
1300
|
+
*
|
|
1301
|
+
* Возвращает `true`, если значение является строкой.
|
|
1302
|
+
*
|
|
1303
|
+
* ### Примеры использования
|
|
1304
|
+
*
|
|
1305
|
+
* 1. Проверка значения, являющегося строкой:
|
|
1306
|
+
*
|
|
1307
|
+
* ```js
|
|
1308
|
+
* const value = 'Hello, world!';
|
|
1309
|
+
* const result = Type.expectString(value);
|
|
1310
|
+
* console.log(result); // true
|
|
1311
|
+
* ```
|
|
1312
|
+
*
|
|
1313
|
+
* 2. Проверка значения, не являющегося строкой:
|
|
1314
|
+
*
|
|
1315
|
+
* ```js
|
|
1316
|
+
* try {
|
|
1317
|
+
* const result = Type.expectString(123, 'Значение должно быть строкой.');
|
|
1318
|
+
* } catch (e) {
|
|
1319
|
+
* console.error(e.message); // Значение должно быть строкой.
|
|
1320
|
+
* }
|
|
1321
|
+
* ```
|
|
1322
|
+
*
|
|
1323
|
+
* 3. Проверка значения с использованием пользовательского сообщения об ошибке:
|
|
1324
|
+
*
|
|
1325
|
+
* ```js
|
|
1326
|
+
* try {
|
|
1327
|
+
* const result = Type.expectString({}, 'Ожидалась строка.');
|
|
1328
|
+
* } catch (e) {
|
|
1329
|
+
* console.error(e.message); // Ожидалась строка.
|
|
1330
|
+
* }
|
|
1331
|
+
* ```
|
|
1332
|
+
*
|
|
1333
|
+
* @param {any} value Значение для проверки.
|
|
1334
|
+
* @param {string} [message=''] Сообщение об ошибке, если значение не является строкой.
|
|
1335
|
+
* @returns {boolean} Возвращает `true`, если значение является строкой.
|
|
1336
|
+
* @throws {TypeError} Если значение не является строкой или если параметр `message` не является строкой.
|
|
1337
|
+
*/
|
|
1338
|
+
static expectString(value, message = '') {
|
|
1339
|
+
return expect_string(value, message);
|
|
1340
|
+
}
|
|
1341
|
+
|
|
1342
|
+
/**
|
|
1343
|
+
* Проверяет, является ли значение символом, и выбрасывает ошибку с указанным сообщением, если это не так.
|
|
1344
|
+
*
|
|
1345
|
+
* ### Описание
|
|
1346
|
+
*
|
|
1347
|
+
* Метод `expectSymbol` используется для проверки, является ли переданное значение символом.
|
|
1348
|
+
* Если значение не является символом, метод выбрасывает ошибку типа `TypeError` с указанным сообщением.
|
|
1349
|
+
*
|
|
1350
|
+
* ### Параметры
|
|
1351
|
+
*
|
|
1352
|
+
* - `value` (any): Значение для проверки.
|
|
1353
|
+
* - `message` (string): Сообщение об ошибке, если значение не является символом. По умолчанию пустая строка.
|
|
1354
|
+
*
|
|
1355
|
+
* ### Возвращаемое значение
|
|
1356
|
+
*
|
|
1357
|
+
* Возвращает `true`, если значение является символом.
|
|
1358
|
+
*
|
|
1359
|
+
* ### Примеры использования
|
|
1360
|
+
*
|
|
1361
|
+
* 1. Проверка значения, являющегося символом:
|
|
1362
|
+
*
|
|
1363
|
+
* ```js
|
|
1364
|
+
* const value = Symbol('example');
|
|
1365
|
+
* const result = Type.expectSymbol(value);
|
|
1366
|
+
* console.log(result); // true
|
|
1367
|
+
* ```
|
|
1368
|
+
*
|
|
1369
|
+
* 2. Проверка значения, не являющегося символом:
|
|
1370
|
+
*
|
|
1371
|
+
* ```js
|
|
1372
|
+
* try {
|
|
1373
|
+
* const result = Type.expectSymbol('not a symbol', 'Значение должно быть символом.');
|
|
1374
|
+
* } catch (e) {
|
|
1375
|
+
* console.error(e.message); // Значение должно быть символом.
|
|
1376
|
+
* }
|
|
1377
|
+
* ```
|
|
1378
|
+
*
|
|
1379
|
+
* 3. Проверка значения с использованием пользовательского сообщения об ошибке:
|
|
1380
|
+
*
|
|
1381
|
+
* ```js
|
|
1382
|
+
* try {
|
|
1383
|
+
* const result = Type.expectSymbol(123, 'Ожидался символ.');
|
|
1384
|
+
* } catch (e) {
|
|
1385
|
+
* console.error(e.message); // Ожидался символ.
|
|
1386
|
+
* }
|
|
1387
|
+
* ```
|
|
1388
|
+
*
|
|
1389
|
+
* @param {any} value Значение для проверки.
|
|
1390
|
+
* @param {string} [message=''] Сообщение об ошибке, если значение не является символом.
|
|
1391
|
+
* @returns {boolean} Возвращает `true`, если значение является символом.
|
|
1392
|
+
* @throws {TypeError} Если значение не является символом или если параметр `message` не является строкой.
|
|
1393
|
+
*/
|
|
1394
|
+
static expectSymbol(value, message = '') {
|
|
1395
|
+
return expect_symbol(value, message);
|
|
1396
|
+
}
|
|
1397
|
+
|
|
1398
|
+
/**
|
|
1399
|
+
* Проверяет, является ли значение undefined, и выбрасывает ошибку с указанным сообщением, если это не так.
|
|
1400
|
+
*
|
|
1401
|
+
* ### Описание
|
|
1402
|
+
*
|
|
1403
|
+
* Метод `expectUndefined` используется для проверки, является ли переданное значение undefined.
|
|
1404
|
+
* Если значение не является undefined, метод выбрасывает ошибку типа `TypeError` с указанным сообщением.
|
|
1405
|
+
*
|
|
1406
|
+
* ### Параметры
|
|
1407
|
+
*
|
|
1408
|
+
* - `value` (any): Значение для проверки.
|
|
1409
|
+
* - `message` (string): Сообщение об ошибке, если значение не является undefined. По умолчанию пустая строка.
|
|
1410
|
+
*
|
|
1411
|
+
* ### Возвращаемое значение
|
|
1412
|
+
*
|
|
1413
|
+
* Возвращает `true`, если значение является undefined.
|
|
1414
|
+
*
|
|
1415
|
+
* ### Примеры использования
|
|
1416
|
+
*
|
|
1417
|
+
* 1. Проверка значения, являющегося undefined:
|
|
1418
|
+
*
|
|
1419
|
+
* ```js
|
|
1420
|
+
* let value;
|
|
1421
|
+
* const result = Type.expectUndefined(value);
|
|
1422
|
+
* console.log(result); // true
|
|
1423
|
+
* ```
|
|
1424
|
+
*
|
|
1425
|
+
* 2. Проверка значения, не являющегося undefined:
|
|
1426
|
+
*
|
|
1427
|
+
* ```js
|
|
1428
|
+
* try {
|
|
1429
|
+
* const result = Type.expectUndefined(123, 'Значение должно быть undefined.');
|
|
1430
|
+
* } catch (e) {
|
|
1431
|
+
* console.error(e.message); // Значение должно быть undefined.
|
|
1432
|
+
* }
|
|
1433
|
+
* ```
|
|
1434
|
+
*
|
|
1435
|
+
* 3. Проверка значения с использованием пользовательского сообщения об ошибке:
|
|
1436
|
+
*
|
|
1437
|
+
* ```js
|
|
1438
|
+
* try {
|
|
1439
|
+
* const result = Type.expectUndefined('not undefined', 'Ожидалось значение undefined.');
|
|
1440
|
+
* } catch (e) {
|
|
1441
|
+
* console.error(e.message); // Ожидалось значение undefined.
|
|
1442
|
+
* }
|
|
1443
|
+
* ```
|
|
1444
|
+
*
|
|
1445
|
+
* @param {any} value Значение для проверки.
|
|
1446
|
+
* @param {string} [message=''] Сообщение об ошибке, если значение не является undefined.
|
|
1447
|
+
* @returns {boolean} Возвращает `true`, если значение является undefined.
|
|
1448
|
+
* @throws {TypeError} Если значение не является undefined или если параметр `message` не является строкой.
|
|
1449
|
+
*/
|
|
1450
|
+
static expectUndefined(value, message = '') {
|
|
1451
|
+
return expect_undefined(value, message);
|
|
1452
|
+
}
|
|
1453
|
+
|
|
1454
|
+
/**
|
|
1455
|
+
* Проверяет, является ли переменная пустой.
|
|
1456
|
+
*
|
|
1457
|
+
* ### Описание
|
|
1458
|
+
*
|
|
1459
|
+
* Метод `Type.isEmpty` используется для проверки, является ли переменная пустой. Пустыми считаются значения `null`, `undefined`, пустая строка, `0`, `false`, пустой массив и пустой объект.
|
|
1460
|
+
*
|
|
1461
|
+
* ### Параметры
|
|
1462
|
+
*
|
|
1463
|
+
* - `value` (any)
|
|
1464
|
+
* Переменная, которую необходимо проверить на пустоту.
|
|
1465
|
+
*
|
|
1466
|
+
* ### Возвращаемое значение
|
|
1467
|
+
*
|
|
1468
|
+
* Возвращает `true`, если переменная пустая, и `false` в противном случае.
|
|
1469
|
+
*
|
|
1470
|
+
* ### Примеры использования
|
|
1471
|
+
*
|
|
1472
|
+
* 1. Проверка пустых значений:
|
|
1473
|
+
*
|
|
1474
|
+
* ```js
|
|
1475
|
+
* const result1 = Type.isEmpty(null);
|
|
1476
|
+
* // Результат: true
|
|
1477
|
+
*
|
|
1478
|
+
* const result2 = Type.isEmpty(undefined);
|
|
1479
|
+
* // Результат: true
|
|
1480
|
+
*
|
|
1481
|
+
* const result3 = Type.isEmpty('');
|
|
1482
|
+
* // Результат: true
|
|
1483
|
+
*
|
|
1484
|
+
* const result4 = Type.isEmpty(0);
|
|
1485
|
+
* // Результат: true
|
|
1486
|
+
*
|
|
1487
|
+
* const result5 = Type.isEmpty(false);
|
|
1488
|
+
* // Результат: true
|
|
1489
|
+
*
|
|
1490
|
+
* const result6 = Type.isEmpty([]);
|
|
1491
|
+
* // Результат: true
|
|
1492
|
+
*
|
|
1493
|
+
* const result7 = Type.isEmpty({});
|
|
1494
|
+
* // Результат: true
|
|
1495
|
+
* ```
|
|
1496
|
+
*
|
|
1497
|
+
* 2. Проверка непустых значений:
|
|
1498
|
+
*
|
|
1499
|
+
* ```js
|
|
1500
|
+
* const result1 = Type.isEmpty('example');
|
|
1501
|
+
* // Результат: false
|
|
1502
|
+
*
|
|
1503
|
+
* const result2 = Type.isEmpty(123);
|
|
1504
|
+
* // Результат: false
|
|
1505
|
+
*
|
|
1506
|
+
* const result3 = Type.isEmpty(true);
|
|
1507
|
+
* // Результат: false
|
|
1508
|
+
*
|
|
1509
|
+
* const result4 = Type.isEmpty([1, 2, 3]);
|
|
1510
|
+
* // Результат: false
|
|
1511
|
+
*
|
|
1512
|
+
* const result5 = Type.isEmpty({ key: 'value' });
|
|
1513
|
+
* // Результат: false
|
|
1514
|
+
* ```
|
|
1515
|
+
*
|
|
1516
|
+
* @param {any} value Переменная, которую необходимо проверить на пустоту.
|
|
1517
|
+
* @returns {boolean} Возвращает `true`, если переменная пустая, и `false` в противном случае.
|
|
1518
|
+
*/
|
|
1519
|
+
static isEmpty(value) {
|
|
1520
|
+
return empty(value);
|
|
1521
|
+
}
|
|
1522
|
+
|
|
1523
|
+
/**
|
|
1524
|
+
* Проверяет, является ли переданное значение массивом или ассоциативным массивом (объектом с ключами и значениями).
|
|
1525
|
+
*
|
|
1526
|
+
* ### Описание
|
|
1527
|
+
*
|
|
1528
|
+
* В JavaScript массивы и объекты имеют разные структуры и предназначения:
|
|
1529
|
+
*
|
|
1530
|
+
* - Массивы (Array) являются упорядоченными коллекциями элементов, которые могут быть индексированы.
|
|
1531
|
+
* - Объекты (Object) содержат пары "ключ-значение", которые могут быть неупорядоченными.
|
|
1532
|
+
*
|
|
1533
|
+
* Этот метод проверяет, является ли переданное значение обычным массивом (например, `[1, 2, 3]`),
|
|
1534
|
+
* либо ассоциативным массивом (объектом с парами "ключ-значение", например, `{foo: 'bar'}`).
|
|
1535
|
+
*
|
|
1536
|
+
* ### Алгоритм работы метода
|
|
1537
|
+
*
|
|
1538
|
+
* 1. Сначала проверяется, является ли переданное значение обычным массивом с помощью встроенного метода `Array.isArray(value)`. Если это массив, метод сразу возвращает `true`.
|
|
1539
|
+
*
|
|
1540
|
+
* 2. Если переменная не является массивом, то выполняются дополнительные проверки:
|
|
1541
|
+
*
|
|
1542
|
+
* - Проверяется, что значение не равно `null` (так как `null` в JavaScript также является объектом, но не является ни массивом, ни объектом с парами "ключ-значение").
|
|
1543
|
+
* - Проверяется, что значение является объектом JavaScript (с помощью `typeof value === 'object'`).
|
|
1544
|
+
* - Проверяется, что прототип объекта совпадает с `Object.prototype` (это объект, от которого наследуются все объекты в JavaScript) или является `null` (это означает, что объект был создан с помощью `Object.create(null)` и не имеет прототипа).
|
|
1545
|
+
* - Исключаются массивоподобные объекты (например, `arguments`, `NodeList`), путем проверки, что свойство `length` не является собственным свойством объекта.
|
|
1546
|
+
* - Дополнительно проверяется, что объект является простым (его конструктор равен `Object`), а также исключаются встроенные объекты (`Math`, `JSON`, `Reflect`, `Intl`), для которых метод возвращает `true`.
|
|
1547
|
+
*
|
|
1548
|
+
* ### Параметры
|
|
1549
|
+
*
|
|
1550
|
+
* - `value` (any)
|
|
1551
|
+
* Проверяемая переменная.
|
|
1552
|
+
*
|
|
1553
|
+
* ### Возвращаемое значение
|
|
1554
|
+
*
|
|
1555
|
+
* Возвращает `true`, если переменная является обычным массивом (`Array`), ассоциативным массивом (объектом с парами "ключ-значение"), ассоциативным массивом, созданным с помощью `Object.create(null)`. В остальных случаях метод возвращает `false`.
|
|
1556
|
+
*
|
|
1557
|
+
* ### Примеры использования
|
|
1558
|
+
*
|
|
1559
|
+
* 1. Простые массивы:
|
|
1560
|
+
*
|
|
1561
|
+
* ```js
|
|
1562
|
+
* Type.isArray([1, 2, 3]); // true
|
|
1563
|
+
* Type.isArray([]); // true
|
|
1564
|
+
* ```
|
|
1565
|
+
*
|
|
1566
|
+
* 2. Ассоциативные массивы (объекты с ключами и значениями):
|
|
1567
|
+
*
|
|
1568
|
+
* ```js
|
|
1569
|
+
* Type.isArray({ foo: 'bar', baz: 42 }); // true
|
|
1570
|
+
* Type.isArray({ '0': 'a', '1': 'b' }); // true
|
|
1571
|
+
* ```
|
|
1572
|
+
*
|
|
1573
|
+
* 3. Объекты, созданные без прототипа:
|
|
1574
|
+
*
|
|
1575
|
+
* ```js
|
|
1576
|
+
* const noProtoObject = Object.create(null);
|
|
1577
|
+
* noProtoObject.foo = 'bar';
|
|
1578
|
+
* Type.isArray(noProtoObject); // true
|
|
1579
|
+
* ```
|
|
1580
|
+
*
|
|
1581
|
+
* 4. Примитивы и невалидные значения:
|
|
1582
|
+
*
|
|
1583
|
+
* ```js
|
|
1584
|
+
* Type.isArray(null); // false
|
|
1585
|
+
* Type.isArray(undefined); // false
|
|
1586
|
+
* Type.isArray(42); // false
|
|
1587
|
+
* Type.isArray('hello'); // false
|
|
1588
|
+
* ```
|
|
1589
|
+
*
|
|
1590
|
+
* 5. Специальные объекты:
|
|
1591
|
+
*
|
|
1592
|
+
* ```js
|
|
1593
|
+
* Type.isArray(new Map()); // false
|
|
1594
|
+
* Type.isArray(new Set()); // false
|
|
1595
|
+
* Type.isArray(() => {}); // false
|
|
1596
|
+
* ```
|
|
1597
|
+
*
|
|
1598
|
+
* 6. Классы и их экземпляры:
|
|
1599
|
+
*
|
|
1600
|
+
* ```js
|
|
1601
|
+
* class MyClass {}
|
|
1602
|
+
* const instance = new MyClass();
|
|
1603
|
+
* Type.isArray(instance); // false
|
|
1604
|
+
* ```
|
|
1605
|
+
*
|
|
1606
|
+
* @param {any} value Проверяемая переменная.
|
|
1607
|
+
* @returns {boolean} Возвращает `true`, если значение является массивом или ассоциативным массивом, иначе `false`.
|
|
1608
|
+
*/
|
|
1609
|
+
static isArray(value) {
|
|
1610
|
+
return is_array(value);
|
|
1611
|
+
}
|
|
1612
|
+
|
|
1613
|
+
/**
|
|
1614
|
+
* Проверяет, является ли значение ассоциативным массивом.
|
|
1615
|
+
*
|
|
1616
|
+
* ### Описание
|
|
1617
|
+
*
|
|
1618
|
+
* Ассоциативные массивы в JavaScript представляют собой объекты с парами "ключ-значение".
|
|
1619
|
+
* Этот метод проверяет, является ли переданное значение ассоциативным массивом.
|
|
1620
|
+
*
|
|
1621
|
+
* Метод использует функцию `is_array` для проверки значения и убеждается, что значение не является обычным массивом.
|
|
1622
|
+
*
|
|
1623
|
+
* ### Параметры
|
|
1624
|
+
*
|
|
1625
|
+
* - `value` (any)
|
|
1626
|
+
* Значение, которое необходимо проверить.
|
|
1627
|
+
*
|
|
1628
|
+
* ### Возвращаемое значение
|
|
1629
|
+
*
|
|
1630
|
+
* Возвращает `true`, если значение является ассоциативным массивом, и `false` в противном случае.
|
|
1631
|
+
*
|
|
1632
|
+
* ### Примеры использования
|
|
1633
|
+
*
|
|
1634
|
+
* 1. Ассоциативные массивы:
|
|
1635
|
+
*
|
|
1636
|
+
* ```js
|
|
1637
|
+
* Type.isAssoc({ foo: 'bar' }); // true
|
|
1638
|
+
* Type.isAssoc({}); // true
|
|
1639
|
+
* ```
|
|
1640
|
+
*
|
|
1641
|
+
* 2. Обычные массивы:
|
|
1642
|
+
*
|
|
1643
|
+
* ```js
|
|
1644
|
+
* Type.isAssoc([]); // false
|
|
1645
|
+
* Type.isAssoc([1, 2, 3]); // false
|
|
1646
|
+
* ```
|
|
1647
|
+
*
|
|
1648
|
+
* 3. Значения других типов:
|
|
1649
|
+
*
|
|
1650
|
+
* ```js
|
|
1651
|
+
* Type.isAssoc('string'); // false
|
|
1652
|
+
* Type.isAssoc(42); // false
|
|
1653
|
+
* Type.isAssoc(null); // false
|
|
1654
|
+
* Type.isAssoc(undefined); // false
|
|
1655
|
+
* ```
|
|
1656
|
+
*
|
|
1657
|
+
* @param {any} value Значение, которое необходимо проверить.
|
|
1658
|
+
* @returns {boolean} Возвращает `true`, если значение является ассоциативным массивом, и `false` в противном случае.
|
|
1659
|
+
*/
|
|
1660
|
+
static isAssoc(value) {
|
|
1661
|
+
return is_assoc(value);
|
|
1662
|
+
}
|
|
1663
|
+
|
|
1664
|
+
/**
|
|
1665
|
+
* Проверяет, является ли значение типом `bigint`.
|
|
1666
|
+
*
|
|
1667
|
+
* ### Описание
|
|
1668
|
+
*
|
|
1669
|
+
* Метод `Type.isBigInt` проверяет, является ли переданное значение типом `bigint`.
|
|
1670
|
+
*
|
|
1671
|
+
* ### Параметры
|
|
1672
|
+
*
|
|
1673
|
+
* - `value` (any)
|
|
1674
|
+
* Значение, которое необходимо проверить.
|
|
1675
|
+
*
|
|
1676
|
+
* ### Возвращаемое значение
|
|
1677
|
+
*
|
|
1678
|
+
* Возвращает `true`, если значение является типом `bigint`, и `false` в противном случае.
|
|
1679
|
+
*
|
|
1680
|
+
* ### Примеры использования
|
|
1681
|
+
*
|
|
1682
|
+
* #### Пример 1: Проверка значений типа bigint
|
|
1683
|
+
*
|
|
1684
|
+
* ```js
|
|
1685
|
+
* Type.isBigInt(BigInt(123456)); // true
|
|
1686
|
+
* Type.isBigInt(BigInt(-123456)); // true
|
|
1687
|
+
* ```
|
|
1688
|
+
*
|
|
1689
|
+
* #### Пример 2: Проверка значений других типов
|
|
1690
|
+
*
|
|
1691
|
+
* ```js
|
|
1692
|
+
* Type.isBigInt(42); // false (число)
|
|
1693
|
+
* Type.isBigInt('42'); // false (строка)
|
|
1694
|
+
* Type.isBigInt(true); // false (логическое значение)
|
|
1695
|
+
* Type.isBigInt(null); // false
|
|
1696
|
+
* Type.isBigInt(undefined); // false
|
|
1697
|
+
* Type.isBigInt({}); // false (объект)
|
|
1698
|
+
* Type.isBigInt([]); // false (массив)
|
|
1699
|
+
* ```
|
|
1700
|
+
*
|
|
1701
|
+
* @param {any} value Значение, которое необходимо проверить.
|
|
1702
|
+
* @returns {boolean} Возвращает `true`, если значение является типом bigint, и `false` в противном случае.
|
|
1703
|
+
*/
|
|
1704
|
+
static isBigInt(value) {
|
|
1705
|
+
return is_bigint(value);
|
|
1706
|
+
}
|
|
1707
|
+
|
|
1708
|
+
/**
|
|
1709
|
+
* Проверяет, является ли переданное значение логическим типом (`boolean`).
|
|
1710
|
+
*
|
|
1711
|
+
* ### Описание
|
|
1712
|
+
*
|
|
1713
|
+
* В JavaScript логическое значение может быть только двумя состояниями: `true` или `false`.
|
|
1714
|
+
* Метод проверяет тип переданного значения с использованием оператора `typeof`.
|
|
1715
|
+
* Если значение является примитивом типа `boolean`, метод возвращает `true`.
|
|
1716
|
+
* Для всех других типов (включая объекты, строки, числа, `null`, `undefined` и другие) метод вернёт `false`.
|
|
1717
|
+
*
|
|
1718
|
+
* #### Примечание
|
|
1719
|
+
*
|
|
1720
|
+
* - Метод возвращает `false` для объектов типа `Boolean`, созданных с помощью конструктора `new Boolean()`.
|
|
1721
|
+
* - Возвращает `false` для массивов, объектов и других типов данных, отличных от `boolean`.
|
|
1722
|
+
*
|
|
1723
|
+
* ### Параметры
|
|
1724
|
+
*
|
|
1725
|
+
* - `value` (any):
|
|
1726
|
+
* Проверяемая переменная.
|
|
1727
|
+
*
|
|
1728
|
+
* ### Возвращаемое значение
|
|
1729
|
+
*
|
|
1730
|
+
* Возвращает `true`, если значение `value` является логическим (`boolean`), иначе `false`.
|
|
1731
|
+
*
|
|
1732
|
+
* ### Примеры использования
|
|
1733
|
+
*
|
|
1734
|
+
* ```js
|
|
1735
|
+
* Type.isBool(true); // Возвращает: true
|
|
1736
|
+
* Type.isBool(false); // Возвращает: true
|
|
1737
|
+
* Type.isBool(0); // Возвращает: false
|
|
1738
|
+
* Type.isBool('true'); // Возвращает: false
|
|
1739
|
+
* Type.isBool(null); // Возвращает: false
|
|
1740
|
+
* Type.isBool([]); // Возвращает: false
|
|
1741
|
+
* Type.isBool({}); // Возвращает: false
|
|
1742
|
+
* Type.isBool(new Boolean(true)); // Возвращает: false
|
|
1743
|
+
* ```
|
|
1744
|
+
*
|
|
1745
|
+
* @param {any} value Проверяемая переменная.
|
|
1746
|
+
* @returns {boolean} Возвращает `true`, если значение является логическим, иначе `false`.
|
|
1747
|
+
*/
|
|
1748
|
+
static isBool(value) {
|
|
1749
|
+
return is_bool(value);
|
|
1750
|
+
}
|
|
1751
|
+
|
|
1752
|
+
/**
|
|
1753
|
+
* Проверяет, является ли переданное значение логическим типом (`boolean`).
|
|
1754
|
+
*
|
|
1755
|
+
* ### Описание
|
|
1756
|
+
*
|
|
1757
|
+
* В JavaScript логическое значение может быть только двумя состояниями: `true` или `false`.
|
|
1758
|
+
* Метод проверяет тип переданного значения с использованием оператора `typeof`.
|
|
1759
|
+
* Если значение является примитивом типа `boolean`, метод возвращает `true`.
|
|
1760
|
+
* Для всех других типов (включая объекты, строки, числа, `null`, `undefined` и другие) метод вернёт `false`.
|
|
1761
|
+
*
|
|
1762
|
+
* #### Примечание
|
|
1763
|
+
*
|
|
1764
|
+
* - Метод возвращает `false` для объектов типа `Boolean`, созданных с помощью конструктора `new Boolean()`.
|
|
1765
|
+
* - Возвращает `false` для массивов, объектов и других типов данных, отличных от `boolean`.
|
|
1766
|
+
*
|
|
1767
|
+
* ### Параметры
|
|
1768
|
+
*
|
|
1769
|
+
* - `value` (any):
|
|
1770
|
+
* Проверяемая переменная.
|
|
1771
|
+
*
|
|
1772
|
+
* ### Возвращаемое значение
|
|
1773
|
+
*
|
|
1774
|
+
* Возвращает `true`, если значение `value` является логическим (`boolean`), иначе `false`.
|
|
1775
|
+
*
|
|
1776
|
+
* ### Примеры использования
|
|
1777
|
+
*
|
|
1778
|
+
* ```js
|
|
1779
|
+
* Type.isBoolean(true); // Возвращает: true
|
|
1780
|
+
* Type.isBoolean(false); // Возвращает: true
|
|
1781
|
+
* Type.isBoolean(0); // Возвращает: false
|
|
1782
|
+
* Type.isBoolean('true'); // Возвращает: false
|
|
1783
|
+
* Type.isBoolean(null); // Возвращает: false
|
|
1784
|
+
* Type.isBoolean([]); // Возвращает: false
|
|
1785
|
+
* Type.isBoolean({}); // Возвращает: false
|
|
1786
|
+
* Type.isBoolean(new Boolean(true)); // Возвращает: false
|
|
1787
|
+
* ```
|
|
1788
|
+
*
|
|
1789
|
+
* @param {any} value Проверяемая переменная.
|
|
1790
|
+
* @returns {boolean} Возвращает `true`, если значение является логическим, иначе `false`.
|
|
1791
|
+
*/
|
|
1792
|
+
static isBoolean(value) {
|
|
1793
|
+
return is_bool(value);
|
|
1794
|
+
}
|
|
1795
|
+
|
|
1796
|
+
/**
|
|
1797
|
+
* Проверяет, является ли переданная переменная классом.
|
|
1798
|
+
*
|
|
1799
|
+
* ### Параметры
|
|
1800
|
+
*
|
|
1801
|
+
* - `value` (any)
|
|
1802
|
+
* Проверяемая переменная.
|
|
1803
|
+
*
|
|
1804
|
+
* ### Описание
|
|
1805
|
+
*
|
|
1806
|
+
* В JavaScript классы являются функциями, но с уникальным поведением.
|
|
1807
|
+
*
|
|
1808
|
+
* Для определения класса метод проверяет:
|
|
1809
|
+
*
|
|
1810
|
+
* 1. Что переданная переменная является функцией.
|
|
1811
|
+
* 2. Что строковое представление функции начинается с `class `.
|
|
1812
|
+
*
|
|
1813
|
+
* #### Примечание
|
|
1814
|
+
*
|
|
1815
|
+
* Конструкторы функций, созданные с помощью `function`, не будут распознаны как классы.
|
|
1816
|
+
*
|
|
1817
|
+
* Для примера:
|
|
1818
|
+
*
|
|
1819
|
+
* ```js
|
|
1820
|
+
* function Foo() {}
|
|
1821
|
+
* Type.isClass(Foo); // Возвращает: false
|
|
1822
|
+
* ```
|
|
1823
|
+
*
|
|
1824
|
+
* В отличие от классов, которые выглядят так:
|
|
1825
|
+
*
|
|
1826
|
+
* ```js
|
|
1827
|
+
* class MyClass {}
|
|
1828
|
+
* Type.isClass(MyClass); // Возвращает: true
|
|
1829
|
+
* ```
|
|
1830
|
+
*
|
|
1831
|
+
* ### Возвращаемое значение
|
|
1832
|
+
*
|
|
1833
|
+
* Возвращает `true`, если значение является классом, иначе `false`.
|
|
1834
|
+
*
|
|
1835
|
+
* ### Примеры использования
|
|
1836
|
+
*
|
|
1837
|
+
* 1. Классы:
|
|
1838
|
+
*
|
|
1839
|
+
* ```js
|
|
1840
|
+
* class MyClass {}
|
|
1841
|
+
* Type.isClass(MyClass); // true
|
|
1842
|
+
* ```
|
|
1843
|
+
*
|
|
1844
|
+
* 2. Функции-конструкторы:
|
|
1845
|
+
*
|
|
1846
|
+
* ```js
|
|
1847
|
+
* function MyFunction() {}
|
|
1848
|
+
* Type.isClass(MyFunction); // false
|
|
1849
|
+
* ```
|
|
1850
|
+
*
|
|
1851
|
+
* 3. Объекты и примитивы:
|
|
1852
|
+
*
|
|
1853
|
+
* ```js
|
|
1854
|
+
* Type.isClass({}); // false
|
|
1855
|
+
* Type.isClass([]); // false
|
|
1856
|
+
* Type.isClass(null); // false
|
|
1857
|
+
* Type.isClass(42); // false
|
|
1858
|
+
* ```
|
|
1859
|
+
*
|
|
1860
|
+
* @param {any} value Проверяемая переменная.
|
|
1861
|
+
* @returns {boolean} Возвращает `true`, если значение является классом, иначе `false`.
|
|
1862
|
+
*/
|
|
1863
|
+
static isClass(value) {
|
|
1864
|
+
return is_class(value);
|
|
1865
|
+
}
|
|
1866
|
+
|
|
1867
|
+
/**
|
|
1868
|
+
* Проверяет, является ли значение числом с плавающей точкой.
|
|
1869
|
+
*
|
|
1870
|
+
* ### Параметры
|
|
1871
|
+
*
|
|
1872
|
+
* - `value` (any)
|
|
1873
|
+
* Значение для проверки.
|
|
1874
|
+
*
|
|
1875
|
+
* ### Описание
|
|
1876
|
+
*
|
|
1877
|
+
* Метод `Type.isFloat` проверяет, является ли переданное значение числом с дробной частью, которое отличается от целого числа.
|
|
1878
|
+
*
|
|
1879
|
+
* Она работает следующим образом:
|
|
1880
|
+
*
|
|
1881
|
+
* 1. Проверяет, что значение имеет тип `number`.
|
|
1882
|
+
* 2. Исключает значения `NaN`, которые также относятся к типу `number`, но не считаются числовыми значениями.
|
|
1883
|
+
* 3. Проверяет, что у числа есть дробная часть, проверяя остаток от деления на `1` (`value % 1 !== 0`).
|
|
1884
|
+
*
|
|
1885
|
+
* Значения, которые не являются числами или числа без дробной части, не считаются числами с плавающей точкой.
|
|
1886
|
+
*
|
|
1887
|
+
* ### Возвращаемое значение
|
|
1888
|
+
*
|
|
1889
|
+
* Возвращает `true`, если значение является числом с плавающей точкой, иначе `false`.
|
|
1890
|
+
*
|
|
1891
|
+
* ### Примеры использования
|
|
1892
|
+
*
|
|
1893
|
+
* #### Числа с плавающей точкой
|
|
1894
|
+
*
|
|
1895
|
+
* ```js
|
|
1896
|
+
* Type.isFloat(3.14); // true
|
|
1897
|
+
* Type.isFloat(-0.5); // true
|
|
1898
|
+
* Type.isFloat(0.1 + 0.2); // true
|
|
1899
|
+
* ```
|
|
1900
|
+
*
|
|
1901
|
+
* #### Целые числа
|
|
1902
|
+
*
|
|
1903
|
+
* ```js
|
|
1904
|
+
* Type.isFloat(0); // false
|
|
1905
|
+
* Type.isFloat(42); // false
|
|
1906
|
+
* Type.isFloat(-100); // false
|
|
1907
|
+
* ```
|
|
1908
|
+
*
|
|
1909
|
+
* #### Нечисловые значения
|
|
1910
|
+
*
|
|
1911
|
+
* ```js
|
|
1912
|
+
* Type.isFloat('3.14'); // false
|
|
1913
|
+
* Type.isFloat(NaN); // false
|
|
1914
|
+
* Type.isFloat(null); // false
|
|
1915
|
+
* Type.isFloat(undefined); // false
|
|
1916
|
+
* Type.isFloat(true); // false
|
|
1917
|
+
* Type.isFloat({}); // false
|
|
1918
|
+
* Type.isFloat([]); // false
|
|
1919
|
+
* ```
|
|
1920
|
+
*
|
|
1921
|
+
* #### Специальные значения
|
|
1922
|
+
*
|
|
1923
|
+
* ```js
|
|
1924
|
+
* Type.isFloat(Infinity); // false
|
|
1925
|
+
* Type.isFloat(-Infinity); // false
|
|
1926
|
+
* ```
|
|
1927
|
+
*
|
|
1928
|
+
* @param {any} value Значение для проверки.
|
|
1929
|
+
* @returns {boolean} Возвращает `true`, если значение является числом с плавающей точкой, иначе `false`.
|
|
1930
|
+
*/
|
|
1931
|
+
static isFloat(value) {
|
|
1932
|
+
return is_float(value);
|
|
1933
|
+
}
|
|
1934
|
+
|
|
1935
|
+
/**
|
|
1936
|
+
* Проверяет, что значение является функцией, исключая классы.
|
|
1937
|
+
*
|
|
1938
|
+
* ### Параметры
|
|
1939
|
+
*
|
|
1940
|
+
* - `value` (any):
|
|
1941
|
+
* Проверяемое значение. Может быть любым типом данных.
|
|
1942
|
+
*
|
|
1943
|
+
* ### Описание
|
|
1944
|
+
*
|
|
1945
|
+
* Метод проверяет, является ли переданное значение функцией, исключая классы.
|
|
1946
|
+
* В JavaScript функции и классы оба являются типом `function`, но классы имеют особый синтаксис и поведение.
|
|
1947
|
+
* Метод `Type.isFunction` различает их, проверяя, не начинается ли строковое представление функции с `class`, что указывает на то, что это класс, а не обычная функция.
|
|
1948
|
+
* Если значение является функцией (но не классом), метод возвращает `true`.
|
|
1949
|
+
* Для всех остальных типов данных (включая классы, объекты, примитивы) метод возвращает `false`.
|
|
1950
|
+
*
|
|
1951
|
+
* ### Возвращаемое значение
|
|
1952
|
+
*
|
|
1953
|
+
* Возвращает `true`, если переданное значение является функцией (но не классом).
|
|
1954
|
+
* Возвращает `false`, если переданное значение является классом или любым другим типом данных.
|
|
1955
|
+
*
|
|
1956
|
+
* ### Примеры использования
|
|
1957
|
+
*
|
|
1958
|
+
* Пример 1: обычная функция
|
|
1959
|
+
*
|
|
1960
|
+
* ```js
|
|
1961
|
+
* function test() {}
|
|
1962
|
+
* Type.isFunction(test); // Возвращает: true
|
|
1963
|
+
* ```
|
|
1964
|
+
*
|
|
1965
|
+
* Пример 2: класс
|
|
1966
|
+
*
|
|
1967
|
+
* ```js
|
|
1968
|
+
* class MyClass {}
|
|
1969
|
+
* Type.isFunction(MyClass); // Возвращает: false
|
|
1970
|
+
* ```
|
|
1971
|
+
*
|
|
1972
|
+
* Пример 3: объект
|
|
1973
|
+
*
|
|
1974
|
+
* ```js
|
|
1975
|
+
* const obj = {};
|
|
1976
|
+
* Type.isFunction(obj); // Возвращает: false
|
|
1977
|
+
* ```
|
|
1978
|
+
*
|
|
1979
|
+
* Пример 4: примитив
|
|
1980
|
+
*
|
|
1981
|
+
* ```js
|
|
1982
|
+
* Type.isFunction(42); // Возвращает: false
|
|
1983
|
+
* Type.isFunction('hello'); // Возвращает: false
|
|
1984
|
+
* ```
|
|
1985
|
+
*
|
|
1986
|
+
* @param {any} value - Проверяемое значение.
|
|
1987
|
+
* @returns {boolean} Возвращает `true`, если значение является функцией, иначе `false`.
|
|
1988
|
+
*/
|
|
1989
|
+
static isFunction(value) {
|
|
1990
|
+
return is_function(value);
|
|
1991
|
+
}
|
|
1992
|
+
|
|
1993
|
+
/**
|
|
1994
|
+
* Проверяет, является ли значение бесконечностью (Infinity или -Infinity).
|
|
1995
|
+
*
|
|
1996
|
+
* ### Параметры
|
|
1997
|
+
*
|
|
1998
|
+
* - `value` (any)
|
|
1999
|
+
* Значение, которое необходимо проверить.
|
|
2000
|
+
*
|
|
2001
|
+
* ### Описание
|
|
2002
|
+
*
|
|
2003
|
+
* Метод `Type.isInfinity` проверяет, является ли переданное значение бесконечностью (Infinity или -Infinity).
|
|
2004
|
+
*
|
|
2005
|
+
* Он проверяет, равно ли значение `Number.POSITIVE_INFINITY` или `Number.NEGATIVE_INFINITY`.
|
|
2006
|
+
*
|
|
2007
|
+
* ### Возвращаемое значение
|
|
2008
|
+
*
|
|
2009
|
+
* Возвращает `true`, если значение является бесконечностью, и `false` в противном случае.
|
|
2010
|
+
*
|
|
2011
|
+
* ### Примеры использования
|
|
2012
|
+
*
|
|
2013
|
+
* #### Пример 1: Проверка значения Infinity
|
|
2014
|
+
*
|
|
2015
|
+
* ```js
|
|
2016
|
+
* Type.isInfinity(Infinity); // true
|
|
2017
|
+
* Type.isInfinity(-Infinity); // true
|
|
2018
|
+
* ```
|
|
2019
|
+
*
|
|
2020
|
+
* #### Пример 2: Проверка числовых значений
|
|
2021
|
+
*
|
|
2022
|
+
* ```js
|
|
2023
|
+
* Type.isInfinity(42); // false
|
|
2024
|
+
* Type.isInfinity(3.14); // false
|
|
2025
|
+
* Type.isInfinity(NaN); // false
|
|
2026
|
+
* ```
|
|
2027
|
+
*
|
|
2028
|
+
* #### Пример 3: Проверка значений других типов
|
|
2029
|
+
*
|
|
2030
|
+
* ```js
|
|
2031
|
+
* Type.isInfinity('Infinity'); // false (строка)
|
|
2032
|
+
* Type.isInfinity(true); // false (логическое значение)
|
|
2033
|
+
* Type.isInfinity(null); // false
|
|
2034
|
+
* Type.isInfinity(undefined); // false
|
|
2035
|
+
* Type.isInfinity({}); // false (объект)
|
|
2036
|
+
* Type.isInfinity([]); // false (массив)
|
|
2037
|
+
* ```
|
|
2038
|
+
*
|
|
2039
|
+
* @param {any} value Значение, которое необходимо проверить.
|
|
2040
|
+
* @returns {boolean} Возвращает `true`, если значение является бесконечностью, и `false` в противном случае.
|
|
2041
|
+
*/
|
|
2042
|
+
static isInfinity(value) {
|
|
2043
|
+
return is_infinity(value);
|
|
2044
|
+
}
|
|
2045
|
+
|
|
2046
|
+
/**
|
|
2047
|
+
* Проверяет, является ли значение целым числом.
|
|
2048
|
+
*
|
|
2049
|
+
* ### Параметры
|
|
2050
|
+
*
|
|
2051
|
+
* - `value` (any)
|
|
2052
|
+
* Значение, которое нужно проверить.
|
|
2053
|
+
*
|
|
2054
|
+
* ### Описание
|
|
2055
|
+
*
|
|
2056
|
+
* Метод `Type.isInt` определяет, является ли переданное значение целым числом.
|
|
2057
|
+
*
|
|
2058
|
+
* Он выполняет следующие проверки:
|
|
2059
|
+
*
|
|
2060
|
+
* 1. **Тип значения**: Убеждается, что `value` имеет тип `number`.
|
|
2061
|
+
* 2. **Конечность числа**: Проверяет, что значение не является `Infinity` или `NaN` с помощью `Number.isFinite(value)`.
|
|
2062
|
+
* 3. **Целочисленность**: Убедится, что остаток от деления числа на 1 равен нулю (`value % 1 === 0`).
|
|
2063
|
+
*
|
|
2064
|
+
* Если значение соответствует всем этим условиям, оно считается целым числом.
|
|
2065
|
+
*
|
|
2066
|
+
* ### Возвращаемое значение
|
|
2067
|
+
*
|
|
2068
|
+
* Возвращает `true`, если значение является целым числом, иначе `false`.
|
|
2069
|
+
*
|
|
2070
|
+
* ### Примеры использования
|
|
2071
|
+
*
|
|
2072
|
+
* ```js
|
|
2073
|
+
* // Проверка целых чисел
|
|
2074
|
+
* Type.isInt(42); // true
|
|
2075
|
+
* Type.isInt(0); // true
|
|
2076
|
+
* Type.isInt(-123); // true
|
|
2077
|
+
*
|
|
2078
|
+
* // Проверка дробных чисел
|
|
2079
|
+
* Type.isInt(3.14); // false
|
|
2080
|
+
* Type.isInt(-0.001); // false
|
|
2081
|
+
*
|
|
2082
|
+
* // Некорректные типы данных
|
|
2083
|
+
* Type.isInt('42'); // false (строка)
|
|
2084
|
+
* Type.isInt(true); // false (логическое значение)
|
|
2085
|
+
* Type.isInt(null); // false (null)
|
|
2086
|
+
* Type.isInt(undefined);// false (undefined)
|
|
2087
|
+
*
|
|
2088
|
+
* // Бесконечные и некорректные числовые значения
|
|
2089
|
+
* Type.isInt(Infinity); // false (бесконечность)
|
|
2090
|
+
* Type.isInt(-Infinity);// false (отрицательная бесконечность)
|
|
2091
|
+
* Type.isInt(NaN); // false (не число)
|
|
2092
|
+
*
|
|
2093
|
+
* // Проверка типа bigint
|
|
2094
|
+
* Type.isInt(BigInt(123456)); // false
|
|
2095
|
+
* ```
|
|
2096
|
+
*
|
|
2097
|
+
* @param {any} value Значение для проверки.
|
|
2098
|
+
* @returns {boolean} Возвращает `true`, если значение является целым числом, иначе `false`.
|
|
2099
|
+
*/
|
|
2100
|
+
static isInt(value) {
|
|
2101
|
+
return is_int(value);
|
|
2102
|
+
}
|
|
2103
|
+
|
|
2104
|
+
/**
|
|
2105
|
+
* Проверяет, является ли значение целым числом.
|
|
2106
|
+
*
|
|
2107
|
+
* ### Параметры
|
|
2108
|
+
*
|
|
2109
|
+
* - `value` (any)
|
|
2110
|
+
* Значение, которое необходимо проверить.
|
|
2111
|
+
*
|
|
2112
|
+
* ### Описание
|
|
2113
|
+
*
|
|
2114
|
+
* Метод `Type.isInteger` проверяет, является ли переданное значение целым числом.
|
|
2115
|
+
*
|
|
2116
|
+
* 1. Проверяется, что значение имеет тип `number`.
|
|
2117
|
+
* 2. Убеждается, что значение является конечным числом.
|
|
2118
|
+
* 3. Проверяется, что остаток от деления значения на 1 равен 0.
|
|
2119
|
+
*
|
|
2120
|
+
* Метод возвращает `false` для:
|
|
2121
|
+
*
|
|
2122
|
+
* - Чисел с плавающей точкой (например, `3.14`, `-0.99`).
|
|
2123
|
+
* - Специальных чисел (`NaN`, `Infinity`, `-Infinity`).
|
|
2124
|
+
* - Значений других типов, таких как строки, объекты или массивы.
|
|
2125
|
+
*
|
|
2126
|
+
* ### Возвращаемое значение
|
|
2127
|
+
*
|
|
2128
|
+
* Возвращает `true`, если значение является целым числом, и `false` в противном случае.
|
|
2129
|
+
*
|
|
2130
|
+
* ### Примеры использования
|
|
2131
|
+
*
|
|
2132
|
+
* #### Пример 1: Проверка целых чисел
|
|
2133
|
+
*
|
|
2134
|
+
* ```js
|
|
2135
|
+
* Type.isInteger(42); // true
|
|
2136
|
+
* Type.isInteger(-7); // true
|
|
2137
|
+
* Type.isInteger(0); // true
|
|
2138
|
+
* ```
|
|
2139
|
+
*
|
|
2140
|
+
* #### Пример 2: Проверка чисел с плавающей точкой
|
|
2141
|
+
*
|
|
2142
|
+
* ```js
|
|
2143
|
+
* Type.isInteger(3.14); // false
|
|
2144
|
+
* Type.isInteger(-0.5); // false
|
|
2145
|
+
* ```
|
|
2146
|
+
*
|
|
2147
|
+
* #### Пример 3: Проверка специальных чисел
|
|
2148
|
+
*
|
|
2149
|
+
* ```js
|
|
2150
|
+
* Type.isInteger(NaN); // false
|
|
2151
|
+
* Type.isInteger(Infinity); // false
|
|
2152
|
+
* Type.isInteger(-Infinity); // false
|
|
2153
|
+
* ```
|
|
2154
|
+
*
|
|
2155
|
+
* #### Пример 4: Проверка других типов данных
|
|
2156
|
+
*
|
|
2157
|
+
* ```js
|
|
2158
|
+
* Type.isInteger('42'); // false (строка)
|
|
2159
|
+
* Type.isInteger(true); // false (логическое значение)
|
|
2160
|
+
* Type.isInteger(null); // false
|
|
2161
|
+
* Type.isInteger(undefined); // false
|
|
2162
|
+
* Type.isInteger({}); // false (объект)
|
|
2163
|
+
* Type.isInteger([]); // false (массив)
|
|
2164
|
+
* ```
|
|
2165
|
+
*
|
|
2166
|
+
* #### Пример 5: Проверка типа bigint
|
|
2167
|
+
*
|
|
2168
|
+
* ```js
|
|
2169
|
+
* Type.isInteger(BigInt(123456)); // false
|
|
2170
|
+
* ```
|
|
2171
|
+
*
|
|
2172
|
+
* @param {any} value Значение для проверки.
|
|
2173
|
+
* @returns {boolean} Возвращает `true`, если значение является целым числом, иначе `false`.
|
|
2174
|
+
*/
|
|
2175
|
+
static isInteger(value) {
|
|
2176
|
+
return is_int(value);
|
|
2177
|
+
}
|
|
2178
|
+
|
|
2179
|
+
/**
|
|
2180
|
+
* Проверяет, является ли значение списком.
|
|
2181
|
+
*
|
|
2182
|
+
* ### Параметры
|
|
2183
|
+
*
|
|
2184
|
+
* - `value` (any)
|
|
2185
|
+
* Значение, которое необходимо проверить.
|
|
2186
|
+
*
|
|
2187
|
+
* ### Описание
|
|
2188
|
+
*
|
|
2189
|
+
* Метод `Type.isList` проверяет, является ли переданное значение списком.
|
|
2190
|
+
*
|
|
2191
|
+
* Он использует метод `Array.isArray` для проверки значения.
|
|
2192
|
+
*
|
|
2193
|
+
* ### Возвращаемое значение
|
|
2194
|
+
*
|
|
2195
|
+
* Возвращает `true`, если значение является списком, и `false` в противном случае.
|
|
2196
|
+
*
|
|
2197
|
+
* ### Примеры использования
|
|
2198
|
+
*
|
|
2199
|
+
* #### Пример 1: Проверка массивов
|
|
2200
|
+
*
|
|
2201
|
+
* ```js
|
|
2202
|
+
* Type.isList([]); // true
|
|
2203
|
+
* Type.isList([1, 2, 3]); // true
|
|
2204
|
+
* ```
|
|
2205
|
+
*
|
|
2206
|
+
* #### Пример 2: Проверка значений других типов
|
|
2207
|
+
*
|
|
2208
|
+
* ```js
|
|
2209
|
+
* Type.isList({}); // false (ассоциативный массив)
|
|
2210
|
+
* Type.isList('string'); // false (строка)
|
|
2211
|
+
* Type.isList(42); // false (число)
|
|
2212
|
+
* Type.isList(null); // false
|
|
2213
|
+
* Type.isList(undefined); // false
|
|
2214
|
+
* ```
|
|
2215
|
+
*
|
|
2216
|
+
* @param {any} value Значение, которое необходимо проверить.
|
|
2217
|
+
* @returns {boolean} Возвращает `true`, если значение является списком, и `false` в противном случае.
|
|
2218
|
+
*/
|
|
2219
|
+
static isList(value) {
|
|
2220
|
+
return is_list(value);
|
|
2221
|
+
}
|
|
2222
|
+
|
|
2223
|
+
/**
|
|
2224
|
+
* Проверяет, является ли значение NaN.
|
|
2225
|
+
*
|
|
2226
|
+
* ### Параметры
|
|
2227
|
+
*
|
|
2228
|
+
* - `value` (any)
|
|
2229
|
+
* Значение, которое необходимо проверить.
|
|
2230
|
+
*
|
|
2231
|
+
* ### Описание
|
|
2232
|
+
*
|
|
2233
|
+
* Метод `Type.isNaN` проверяет, является ли переданное значение NaN (Not-a-Number).
|
|
2234
|
+
*
|
|
2235
|
+
* Он использует метод `Number.isNaN` для проверки значения.
|
|
2236
|
+
*
|
|
2237
|
+
* ### Возвращаемое значение
|
|
2238
|
+
*
|
|
2239
|
+
* Возвращает `true`, если значение является NaN, и `false` в противном случае.
|
|
2240
|
+
*
|
|
2241
|
+
* ### Примеры использования
|
|
2242
|
+
*
|
|
2243
|
+
* #### Пример 1: Проверка значения NaN
|
|
2244
|
+
*
|
|
2245
|
+
* ```js
|
|
2246
|
+
* Type.isNaN(NaN); // true
|
|
2247
|
+
* ```
|
|
2248
|
+
*
|
|
2249
|
+
* #### Пример 2: Проверка числовых значений
|
|
2250
|
+
*
|
|
2251
|
+
* ```js
|
|
2252
|
+
* Type.isNaN(42); // false
|
|
2253
|
+
* Type.isNaN(3.14); // false
|
|
2254
|
+
* Type.isNaN(Infinity); // false
|
|
2255
|
+
* ```
|
|
2256
|
+
*
|
|
2257
|
+
* #### Пример 3: Проверка значений других типов
|
|
2258
|
+
*
|
|
2259
|
+
* ```js
|
|
2260
|
+
* Type.isNaN('42'); // false (строка)
|
|
2261
|
+
* Type.isNaN(true); // false (логическое значение)
|
|
2262
|
+
* Type.isNaN(null); // false
|
|
2263
|
+
* Type.isNaN(undefined); // false
|
|
2264
|
+
* Type.isNaN({}); // false (объект)
|
|
2265
|
+
* Type.isNaN([]); // false (массив)
|
|
2266
|
+
* ```
|
|
2267
|
+
*
|
|
2268
|
+
* @param {any} value Значение, которое необходимо проверить.
|
|
2269
|
+
* @returns {boolean} Возвращает `true`, если значение является NaN, и `false` в противном случае.
|
|
2270
|
+
*/
|
|
2271
|
+
static isNaN(value) {
|
|
2272
|
+
return is_nan(value);
|
|
2273
|
+
}
|
|
2274
|
+
|
|
2275
|
+
/**
|
|
2276
|
+
* Проверяет, является ли значение `null`.
|
|
2277
|
+
*
|
|
2278
|
+
* ### Параметры
|
|
2279
|
+
*
|
|
2280
|
+
* - `value` (any)
|
|
2281
|
+
* Значение, которое необходимо проверить.
|
|
2282
|
+
*
|
|
2283
|
+
* ### Описание
|
|
2284
|
+
*
|
|
2285
|
+
* Метод `Type.isNull` проверяет, является ли переданное значение `null`.
|
|
2286
|
+
*
|
|
2287
|
+
* Он просто сравнивает значение с `null`.
|
|
2288
|
+
*
|
|
2289
|
+
* ### Возвращаемое значение
|
|
2290
|
+
*
|
|
2291
|
+
* Возвращает `true`, если значение является `null`, и `false` в противном случае.
|
|
2292
|
+
*
|
|
2293
|
+
* ### Примеры использования
|
|
2294
|
+
*
|
|
2295
|
+
* #### Пример 1: Проверка значения `null`
|
|
2296
|
+
*
|
|
2297
|
+
* ```js
|
|
2298
|
+
* Type.isNull(null); // true
|
|
2299
|
+
* ```
|
|
2300
|
+
*
|
|
2301
|
+
* #### Пример 2: Проверка значений других типов
|
|
2302
|
+
*
|
|
2303
|
+
* ```js
|
|
2304
|
+
* Type.isNull(undefined); // false
|
|
2305
|
+
* Type.isNull(0); // false
|
|
2306
|
+
* Type.isNull(''); // false
|
|
2307
|
+
* Type.isNull(false); // false
|
|
2308
|
+
* Type.isNull({}); // false
|
|
2309
|
+
* Type.isNull([]); // false
|
|
2310
|
+
* ```
|
|
2311
|
+
*
|
|
2312
|
+
* @param {any} value Значение, которое необходимо проверить.
|
|
2313
|
+
* @returns {boolean} Возвращает `true`, если значение является `null`, и `false` в противном случае.
|
|
2314
|
+
*/
|
|
2315
|
+
static isNull(value) {
|
|
2316
|
+
return is_null(value);
|
|
2317
|
+
}
|
|
2318
|
+
|
|
2319
|
+
/**
|
|
2320
|
+
* Проверяет, является ли значение числом.
|
|
2321
|
+
*
|
|
2322
|
+
* ### Параметры
|
|
2323
|
+
*
|
|
2324
|
+
* - `value` (any)
|
|
2325
|
+
* Значение, которое необходимо проверить.
|
|
2326
|
+
*
|
|
2327
|
+
* ### Описание
|
|
2328
|
+
*
|
|
2329
|
+
* Метод `Type.isNumber` проверяет, является ли переданное значение числом.
|
|
2330
|
+
*
|
|
2331
|
+
* Он использует оператор `typeof` для проверки типа значения.
|
|
2332
|
+
*
|
|
2333
|
+
* Метод возвращает `false` для значений других типов, таких как строки, объекты или массивы.
|
|
2334
|
+
*
|
|
2335
|
+
* ### Возвращаемое значение
|
|
2336
|
+
*
|
|
2337
|
+
* Возвращает `true`, если значение является числом, и `false` в противном случае.
|
|
2338
|
+
*
|
|
2339
|
+
* ### Примеры использования
|
|
2340
|
+
*
|
|
2341
|
+
* #### Пример 1: Проверка числовых значений
|
|
2342
|
+
*
|
|
2343
|
+
* ```js
|
|
2344
|
+
* Type.isNumber(42); // true
|
|
2345
|
+
* Type.isNumber(3.14); // true
|
|
2346
|
+
* ```
|
|
2347
|
+
*
|
|
2348
|
+
* #### Пример 2: Проверка значений других типов
|
|
2349
|
+
*
|
|
2350
|
+
* ```js
|
|
2351
|
+
* Type.isNumber('42'); // false (строка)
|
|
2352
|
+
* Type.isNumber(true); // false (логическое значение)
|
|
2353
|
+
* Type.isNumber(null); // false
|
|
2354
|
+
* Type.isNumber(undefined); // false
|
|
2355
|
+
* Type.isNumber({}); // false (объект)
|
|
2356
|
+
* Type.isNumber([]); // false (массив)
|
|
2357
|
+
* ```
|
|
2358
|
+
*
|
|
2359
|
+
* #### Пример 3: Проверка специальных чисел
|
|
2360
|
+
*
|
|
2361
|
+
* ```js
|
|
2362
|
+
* Type.isNumber(NaN); // false
|
|
2363
|
+
* Type.isNumber(Infinity); // false
|
|
2364
|
+
* Type.isNumber(-Infinity); // false
|
|
2365
|
+
* ```
|
|
2366
|
+
*
|
|
2367
|
+
* @param {any} value Значение, которое необходимо проверить.
|
|
2368
|
+
* @returns {boolean} Возвращает `true`, если значение является числом, и `false` в противном случае.
|
|
2369
|
+
*/
|
|
2370
|
+
static isNumber(value) {
|
|
2371
|
+
return is_number(value);
|
|
2372
|
+
}
|
|
2373
|
+
|
|
2374
|
+
/**
|
|
2375
|
+
* Проверяет, является ли значение числом или числовой строкой.
|
|
2376
|
+
*
|
|
2377
|
+
* ### Параметры
|
|
2378
|
+
*
|
|
2379
|
+
* - `value` (any)
|
|
2380
|
+
* Значение, которое необходимо проверить.
|
|
2381
|
+
*
|
|
2382
|
+
* ### Описание
|
|
2383
|
+
*
|
|
2384
|
+
* Метод `Type.isNumeric` проверяет, является ли переданное значение числом или строкой, которая может быть преобразована в число.
|
|
2385
|
+
*
|
|
2386
|
+
* Он использует функцию `is_numeric` для выполнения проверки.
|
|
2387
|
+
*
|
|
2388
|
+
* ### Возвращаемое значение
|
|
2389
|
+
*
|
|
2390
|
+
* Возвращает `true`, если значение является числом или числовой строкой, и `false` в противном случае.
|
|
2391
|
+
*
|
|
2392
|
+
* ### Примеры использования
|
|
2393
|
+
*
|
|
2394
|
+
* #### Пример 1: Проверка числовых значений
|
|
2395
|
+
*
|
|
2396
|
+
* ```js
|
|
2397
|
+
* Type.isNumeric(42); // true
|
|
2398
|
+
* Type.isNumeric(3.14); // true
|
|
2399
|
+
* ```
|
|
2400
|
+
*
|
|
2401
|
+
* #### Пример 2: Проверка числовых строк
|
|
2402
|
+
*
|
|
2403
|
+
* ```js
|
|
2404
|
+
* Type.isNumeric('42'); // true
|
|
2405
|
+
* Type.isNumeric('3.14'); // true
|
|
2406
|
+
* ```
|
|
2407
|
+
*
|
|
2408
|
+
* #### Пример 3: Проверка значений других типов
|
|
2409
|
+
*
|
|
2410
|
+
* ```js
|
|
2411
|
+
* Type.isNumeric(true); // false (логическое значение)
|
|
2412
|
+
* Type.isNumeric(null); // false
|
|
2413
|
+
* Type.isNumeric(undefined); // false
|
|
2414
|
+
* Type.isNumeric({}); // false (объект)
|
|
2415
|
+
* Type.isNumeric([]); // false (массив)
|
|
2416
|
+
* Type.isNumeric('hello'); // false (строка)
|
|
2417
|
+
* ```
|
|
2418
|
+
*
|
|
2419
|
+
* @param {any} value Значение, которое необходимо проверить.
|
|
2420
|
+
* @returns {boolean} Возвращает `true`, если значение является числом или числовой строкой, и `false` в противном случае.
|
|
2421
|
+
*/
|
|
2422
|
+
static isNumeric(value) {
|
|
2423
|
+
return is_numeric(value);
|
|
2424
|
+
}
|
|
2425
|
+
|
|
2426
|
+
/**
|
|
2427
|
+
* Проверяет, является ли переданная переменная объектом.
|
|
2428
|
+
*
|
|
2429
|
+
* ### Параметры
|
|
2430
|
+
*
|
|
2431
|
+
* - `value` (any)
|
|
2432
|
+
* Проверяемая переменная.
|
|
2433
|
+
*
|
|
2434
|
+
* ### Описание
|
|
2435
|
+
*
|
|
2436
|
+
* Метод `Type.isObject` проверяет, является ли переданное значение объектом.
|
|
2437
|
+
*
|
|
2438
|
+
* Он использует оператор `typeof` для проверки типа значения и убеждается, что значение не является `null`.
|
|
2439
|
+
*
|
|
2440
|
+
* Метод возвращает `false` для значений других типов, таких как числа, строки, массивы или функции.
|
|
2441
|
+
*
|
|
2442
|
+
* ### Возвращаемое значение
|
|
2443
|
+
*
|
|
2444
|
+
* Возвращает `true`, если значение является объектом, и `false` в противном случае.
|
|
2445
|
+
*
|
|
2446
|
+
* ### Примеры использования
|
|
2447
|
+
*
|
|
2448
|
+
* #### Пример 1: Проверка объектов
|
|
2449
|
+
*
|
|
2450
|
+
* ```js
|
|
2451
|
+
* Type.isObject({}); // true
|
|
2452
|
+
* Type.isObject({ key: 'value' }); // true
|
|
2453
|
+
* ```
|
|
2454
|
+
*
|
|
2455
|
+
* #### Пример 2: Проверка значений других типов
|
|
2456
|
+
*
|
|
2457
|
+
* ```js
|
|
2458
|
+
* Type.isObject(42); // false (число)
|
|
2459
|
+
* Type.isObject('string'); // false (строка)
|
|
2460
|
+
* Type.isObject(null); // false
|
|
2461
|
+
* Type.isObject(undefined); // false
|
|
2462
|
+
* Type.isObject([]); // false (массив)
|
|
2463
|
+
* Type.isObject(() => {}); // false (функция)
|
|
2464
|
+
* ```
|
|
2465
|
+
*
|
|
2466
|
+
* @param {any} value Проверяемая переменная.
|
|
2467
|
+
* @returns {boolean} Возвращает `true`, если значение является объектом, иначе `false`.
|
|
2468
|
+
*/
|
|
2469
|
+
static isObject(value) {
|
|
2470
|
+
return is_object(value);
|
|
2471
|
+
}
|
|
2472
|
+
|
|
2473
|
+
/**
|
|
2474
|
+
* Проверяет, является ли значение скалярным.
|
|
2475
|
+
*
|
|
2476
|
+
* ### Параметры
|
|
2477
|
+
*
|
|
2478
|
+
* - `value` (any)
|
|
2479
|
+
* Проверяемая переменная.
|
|
2480
|
+
*
|
|
2481
|
+
* ### Описание
|
|
2482
|
+
*
|
|
2483
|
+
* Скалярные переменные — это переменные, содержащие `int`, `float`, `string`, `bool` и `symbol`.
|
|
2484
|
+
* Типы `array`, `object`, `null`, `undefined` — не скалярные.
|
|
2485
|
+
*
|
|
2486
|
+
* ### Возвращаемое значение
|
|
2487
|
+
*
|
|
2488
|
+
* Возвращает `true`, если значение является скалярным, иначе `false`.
|
|
2489
|
+
*
|
|
2490
|
+
* ### Примеры использования
|
|
2491
|
+
*
|
|
2492
|
+
* ```js
|
|
2493
|
+
* // Пример 1: Проверка скалярных значений
|
|
2494
|
+
* Type.isScalar(true); // true
|
|
2495
|
+
* Type.isScalar(42); // true
|
|
2496
|
+
* Type.isScalar('hello'); // true
|
|
2497
|
+
* Type.isScalar(Symbol('symbol')); // true
|
|
2498
|
+
*
|
|
2499
|
+
* // Пример 2: Проверка не скалярных значений
|
|
2500
|
+
* Type.isScalar(null); // false
|
|
2501
|
+
* Type.isScalar(undefined); // false
|
|
2502
|
+
* Type.isScalar({}); // false (объект)
|
|
2503
|
+
* Type.isScalar([]); // false (массив)
|
|
2504
|
+
* Type.isScalar(() => {}); // false (функция)
|
|
2505
|
+
* ```
|
|
2506
|
+
*
|
|
2507
|
+
* @param {any} value Проверяемая переменная.
|
|
2508
|
+
* @returns {boolean} Возвращает `true`, если значение является скалярным, иначе `false`.
|
|
2509
|
+
*/
|
|
2510
|
+
static isScalar(value) {
|
|
2511
|
+
return is_scalar(value);
|
|
2512
|
+
}
|
|
2513
|
+
|
|
2514
|
+
/**
|
|
2515
|
+
* Проверяет, является ли значение строкой.
|
|
2516
|
+
*
|
|
2517
|
+
* ### Параметры
|
|
2518
|
+
*
|
|
2519
|
+
* - `value` (any)
|
|
2520
|
+
* Значение, которое необходимо проверить.
|
|
2521
|
+
*
|
|
2522
|
+
* ### Описание
|
|
2523
|
+
*
|
|
2524
|
+
* Метод `Type.isString` проверяет, является ли переданное значение строкой.
|
|
2525
|
+
*
|
|
2526
|
+
* Он использует оператор `typeof` для проверки типа значения.
|
|
2527
|
+
*
|
|
2528
|
+
* Метод возвращает `false` для значений других типов, таких как числа, объекты или массивы.
|
|
2529
|
+
*
|
|
2530
|
+
* ### Возвращаемое значение
|
|
2531
|
+
*
|
|
2532
|
+
* Возвращает `true`, если значение является строкой, и `false` в противном случае.
|
|
2533
|
+
*
|
|
2534
|
+
* ### Примеры использования
|
|
2535
|
+
*
|
|
2536
|
+
* #### Пример 1: Проверка строковых значений
|
|
2537
|
+
*
|
|
2538
|
+
* ```js
|
|
2539
|
+
* Type.isString('hello'); // true
|
|
2540
|
+
* Type.isString(''); // true
|
|
2541
|
+
* ```
|
|
2542
|
+
*
|
|
2543
|
+
* #### Пример 2: Проверка значений других типов
|
|
2544
|
+
*
|
|
2545
|
+
* ```js
|
|
2546
|
+
* Type.isString(42); // false (число)
|
|
2547
|
+
* Type.isString(true); // false (логическое значение)
|
|
2548
|
+
* Type.isString(null); // false
|
|
2549
|
+
* Type.isString(undefined); // false
|
|
2550
|
+
* Type.isString({}); // false (объект)
|
|
2551
|
+
* Type.isString([]); // false (массив)
|
|
2552
|
+
* ```
|
|
2553
|
+
*
|
|
2554
|
+
* @param {any} value Значение, которое необходимо проверить.
|
|
2555
|
+
* @returns {boolean} Возвращает `true`, если значение является строкой, иначе `false`.
|
|
2556
|
+
*/
|
|
2557
|
+
static isString(value) {
|
|
2558
|
+
return is_string(value);
|
|
2559
|
+
}
|
|
2560
|
+
|
|
2561
|
+
/**
|
|
2562
|
+
* Проверяет, является ли значение символом.
|
|
2563
|
+
*
|
|
2564
|
+
* ### Параметры
|
|
2565
|
+
*
|
|
2566
|
+
* - `value` (any)
|
|
2567
|
+
* Проверяемая переменная.
|
|
2568
|
+
*
|
|
2569
|
+
* ### Описание
|
|
2570
|
+
*
|
|
2571
|
+
* Метод `Type.isSymbol` предназначен для проверки, является ли переданное значение символом.
|
|
2572
|
+
*
|
|
2573
|
+
* Он проверяет:
|
|
2574
|
+
*
|
|
2575
|
+
* 1. Что значение имеет тип `symbol`.
|
|
2576
|
+
*
|
|
2577
|
+
* Метод возвращает `false` для всех значений, не принадлежащих типу `symbol`.
|
|
2578
|
+
*
|
|
2579
|
+
* ### Возвращаемое значение
|
|
2580
|
+
*
|
|
2581
|
+
* Возвращает `true`, если значение является символом, иначе `false`.
|
|
2582
|
+
*
|
|
2583
|
+
* ### Примеры использования
|
|
2584
|
+
*
|
|
2585
|
+
* ```js
|
|
2586
|
+
* // Пример 1: Проверка символов
|
|
2587
|
+
* Type.isSymbol(Symbol('symbol')); // true
|
|
2588
|
+
* Type.isSymbol(Symbol.iterator); // true
|
|
2589
|
+
*
|
|
2590
|
+
* // Пример 2: Проверка значений других типов
|
|
2591
|
+
* Type.isSymbol('hello'); // false (строка)
|
|
2592
|
+
* Type.isSymbol(42); // false (число)
|
|
2593
|
+
* Type.isSymbol(true); // false (логическое значение)
|
|
2594
|
+
* Type.isSymbol(null); // false
|
|
2595
|
+
* Type.isSymbol(undefined); // false
|
|
2596
|
+
* Type.isSymbol({}); // false (объект)
|
|
2597
|
+
* Type.isSymbol([]); // false (массив)
|
|
2598
|
+
* Type.isSymbol(() => {}); // false (функция)
|
|
2599
|
+
* ```
|
|
2600
|
+
*
|
|
2601
|
+
* @param {any} value Проверяемая переменная.
|
|
2602
|
+
* @returns {boolean} Возвращает `true`, если значение является символом, иначе `false`.
|
|
2603
|
+
*/
|
|
2604
|
+
static isSymbol(value) {
|
|
2605
|
+
return is_symbol(value);
|
|
2606
|
+
}
|
|
2607
|
+
|
|
2608
|
+
/**
|
|
2609
|
+
* Проверяет, является ли значение `undefined`.
|
|
2610
|
+
*
|
|
2611
|
+
* ### Параметры
|
|
2612
|
+
*
|
|
2613
|
+
* - `value` (any)
|
|
2614
|
+
* Проверяемая переменная.
|
|
2615
|
+
*
|
|
2616
|
+
* ### Описание
|
|
2617
|
+
*
|
|
2618
|
+
* Метод `Type.isUndefined` проверяет, является ли переданное значение `undefined`.
|
|
2619
|
+
*
|
|
2620
|
+
* Он использует оператор `typeof` для проверки типа значения.
|
|
2621
|
+
*
|
|
2622
|
+
* Метод возвращает `false` для всех значений, не принадлежащих типу `undefined`.
|
|
2623
|
+
*
|
|
2624
|
+
* ### Возвращаемое значение
|
|
2625
|
+
*
|
|
2626
|
+
* Возвращает `true`, если значение является `undefined`, иначе `false`.
|
|
2627
|
+
*
|
|
2628
|
+
* ### Примеры использования
|
|
2629
|
+
*
|
|
2630
|
+
* ```js
|
|
2631
|
+
* // Пример 1: Проверка значения undefined
|
|
2632
|
+
* Type.isUndefined(undefined); // true
|
|
2633
|
+
*
|
|
2634
|
+
* // Пример 2: Проверка значений других типов
|
|
2635
|
+
* Type.isUndefined(null); // false
|
|
2636
|
+
* Type.isUndefined(42); // false (число)
|
|
2637
|
+
* Type.isUndefined('hello'); // false (строка)
|
|
2638
|
+
* Type.isUndefined(true); // false (логическое значение)
|
|
2639
|
+
* Type.isUndefined({}); // false (объект)
|
|
2640
|
+
* Type.isUndefined([]); // false (массив)
|
|
2641
|
+
* Type.isUndefined(() => {}); // false (функция)
|
|
2642
|
+
* ```
|
|
2643
|
+
*
|
|
2644
|
+
* @param {any} value Проверяемая переменная.
|
|
2645
|
+
* @returns {boolean} Возвращает `true`, если значение является `undefined`, иначе `false`.
|
|
2646
|
+
*/
|
|
2647
|
+
static isUndefined(value) {
|
|
2648
|
+
return is_undefined(value);
|
|
2649
|
+
}
|
|
2650
|
+
}
|
|
2651
|
+
|
|
2652
|
+
Object.defineProperties(Type, {
|
|
2653
|
+
NULL: {
|
|
2654
|
+
value: TYPE_NULL,
|
|
2655
|
+
writable: false,
|
|
2656
|
+
configurable: false,
|
|
2657
|
+
enumerable: true,
|
|
2658
|
+
},
|
|
2659
|
+
NAN: {
|
|
2660
|
+
value: TYPE_NAN,
|
|
2661
|
+
writable: false,
|
|
2662
|
+
configurable: false,
|
|
2663
|
+
enumerable: true,
|
|
2664
|
+
},
|
|
2665
|
+
UNDEFINED: {
|
|
2666
|
+
value: TYPE_UNDEFINED,
|
|
2667
|
+
writable: false,
|
|
2668
|
+
configurable: false,
|
|
2669
|
+
enumerable: true,
|
|
2670
|
+
},
|
|
2671
|
+
INFINITY: {
|
|
2672
|
+
value: TYPE_INFINITY,
|
|
2673
|
+
writable: false,
|
|
2674
|
+
configurable: false,
|
|
2675
|
+
enumerable: true,
|
|
2676
|
+
},
|
|
2677
|
+
BOOLEAN: {
|
|
2678
|
+
value: TYPE_BOOLEAN,
|
|
2679
|
+
writable: false,
|
|
2680
|
+
configurable: false,
|
|
2681
|
+
enumerable: true,
|
|
2682
|
+
},
|
|
2683
|
+
INTEGER: {
|
|
2684
|
+
value: TYPE_INTEGER,
|
|
2685
|
+
writable: false,
|
|
2686
|
+
configurable: false,
|
|
2687
|
+
enumerable: true,
|
|
2688
|
+
},
|
|
2689
|
+
BIGINT: {
|
|
2690
|
+
value: TYPE_BIGINT,
|
|
2691
|
+
writable: false,
|
|
2692
|
+
configurable: false,
|
|
2693
|
+
enumerable: true,
|
|
2694
|
+
},
|
|
2695
|
+
FLOAT: {
|
|
2696
|
+
value: TYPE_FLOAT,
|
|
2697
|
+
writable: false,
|
|
2698
|
+
configurable: false,
|
|
2699
|
+
enumerable: true,
|
|
2700
|
+
},
|
|
2701
|
+
STRING: {
|
|
2702
|
+
value: TYPE_STRING,
|
|
2703
|
+
writable: false,
|
|
2704
|
+
configurable: false,
|
|
2705
|
+
enumerable: true,
|
|
2706
|
+
},
|
|
2707
|
+
SYMBOL: {
|
|
2708
|
+
value: TYPE_SYMBOL,
|
|
2709
|
+
writable: false,
|
|
2710
|
+
configurable: false,
|
|
2711
|
+
enumerable: true,
|
|
2712
|
+
},
|
|
2713
|
+
CLASS: {
|
|
2714
|
+
value: TYPE_CLASS,
|
|
2715
|
+
writable: false,
|
|
2716
|
+
configurable: false,
|
|
2717
|
+
enumerable: true,
|
|
2718
|
+
},
|
|
2719
|
+
FUNCTION: {
|
|
2720
|
+
value: TYPE_FUNCTION,
|
|
2721
|
+
writable: false,
|
|
2722
|
+
configurable: false,
|
|
2723
|
+
enumerable: true,
|
|
2724
|
+
},
|
|
2725
|
+
ARRAY: {
|
|
2726
|
+
value: TYPE_ARRAY,
|
|
2727
|
+
writable: false,
|
|
2728
|
+
configurable: false,
|
|
2729
|
+
enumerable: true,
|
|
2730
|
+
},
|
|
2731
|
+
OBJECT: {
|
|
2732
|
+
value: TYPE_OBJECT,
|
|
2733
|
+
writable: false,
|
|
2734
|
+
configurable: false,
|
|
2735
|
+
enumerable: true,
|
|
2736
|
+
},
|
|
2737
|
+
});
|
|
2738
|
+
|
|
2739
|
+
export default Type;
|