@rogolev/value 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (176) hide show
  1. package/.prettierignore +4 -4
  2. package/CHANGELOG.md +68 -56
  3. package/LICENSE +41 -41
  4. package/README.md +100 -91
  5. package/babel.config.json +20 -20
  6. package/docs/classes/Convert/toArray.md +100 -0
  7. package/docs/classes/Convert/toAssoc.md +90 -0
  8. package/docs/classes/Convert/toBool.md +72 -0
  9. package/docs/classes/Convert/toBoolean.md +72 -0
  10. package/docs/classes/Convert/toFloat.md +69 -0
  11. package/docs/classes/Convert/toInt.md +86 -0
  12. package/docs/classes/Convert/toInteger.md +86 -0
  13. package/docs/classes/Convert/toList.md +73 -0
  14. package/docs/classes/Convert/toObject.md +76 -0
  15. package/docs/classes/Convert/toString.md +125 -0
  16. package/docs/classes/Convert.md +44 -0
  17. package/docs/classes/Type/isArray.md +106 -0
  18. package/docs/classes/Type/isAssoc.md +57 -0
  19. package/docs/classes/Type/isBigInt.md +49 -0
  20. package/docs/classes/Type/isBool.md +51 -0
  21. package/docs/classes/Type/isBoolean.md +51 -0
  22. package/docs/classes/Type/isClass.md +60 -0
  23. package/docs/classes/Type/isEmpty.md +53 -0
  24. package/docs/classes/Type/isFloat.md +77 -0
  25. package/docs/classes/Type/isFunction.md +64 -0
  26. package/docs/classes/Type/isInfinity.md +59 -0
  27. package/docs/classes/Type/isInt.md +77 -0
  28. package/docs/classes/Type/isInteger.md +77 -0
  29. package/docs/classes/Type/isList.md +49 -0
  30. package/docs/classes/Type/isNaN.md +57 -0
  31. package/docs/classes/Type/isNull.md +49 -0
  32. package/docs/classes/Type/isNumber.md +60 -0
  33. package/docs/classes/Type/isNumeric.md +58 -0
  34. package/docs/classes/Type/isObject.md +53 -0
  35. package/docs/classes/Type/isScalar.md +54 -0
  36. package/docs/classes/Type/isString.md +54 -0
  37. package/docs/classes/Type/isSymbol.md +56 -0
  38. package/docs/classes/Type/isUndefined.md +52 -0
  39. package/docs/classes/Type.md +74 -0
  40. package/docs/classes.md +9 -0
  41. package/docs/helpers/array.md +80 -80
  42. package/docs/helpers/empty.md +77 -77
  43. package/docs/helpers/gettype.md +69 -69
  44. package/docs/helpers/is_array.md +105 -105
  45. package/docs/helpers/is_assoc.md +59 -59
  46. package/docs/helpers/is_bigint.md +57 -57
  47. package/docs/helpers/is_bool.md +50 -50
  48. package/docs/helpers/is_boolean.md +50 -50
  49. package/docs/helpers/is_class.md +73 -73
  50. package/docs/helpers/is_float.md +71 -71
  51. package/docs/helpers/is_function.md +62 -62
  52. package/docs/helpers/is_infinity.md +61 -61
  53. package/docs/helpers/is_int.md +81 -81
  54. package/docs/helpers/is_integer.md +82 -82
  55. package/docs/helpers/is_list.md +51 -51
  56. package/docs/helpers/is_nan.md +59 -59
  57. package/docs/helpers/is_null.md +49 -49
  58. package/docs/helpers/is_number.md +67 -67
  59. package/docs/helpers/is_numeric.md +76 -76
  60. package/docs/helpers/is_object.md +69 -69
  61. package/docs/helpers/is_scalar.md +60 -60
  62. package/docs/helpers/is_string.md +58 -58
  63. package/docs/helpers/is_symbol.md +58 -58
  64. package/docs/helpers/is_undefined.md +56 -56
  65. package/docs/helpers/print.md +187 -187
  66. package/docs/helpers/print_type.md +225 -225
  67. package/docs/helpers/settype.md +78 -78
  68. package/docs/helpers/to_array.md +106 -106
  69. package/docs/helpers/to_assoc.md +91 -91
  70. package/docs/helpers/to_bool.md +76 -76
  71. package/docs/helpers/to_boolean.md +77 -77
  72. package/docs/helpers/to_float.md +70 -70
  73. package/docs/helpers/to_int.md +87 -87
  74. package/docs/helpers/to_integer.md +87 -87
  75. package/docs/helpers/to_list.md +47 -47
  76. package/docs/helpers/to_object.md +76 -76
  77. package/docs/helpers/to_string.md +134 -134
  78. package/docs/helpers.md +51 -51
  79. package/docs/types/NaN.md +30 -30
  80. package/docs/types/array.md +252 -252
  81. package/docs/types/bigint.md +34 -34
  82. package/docs/types/boolean.md +47 -47
  83. package/docs/types/class.md +36 -36
  84. package/docs/types/float.md +35 -35
  85. package/docs/types/function.md +121 -121
  86. package/docs/types/infinity.md +32 -32
  87. package/docs/types/integer.md +35 -35
  88. package/docs/types/null.md +23 -23
  89. package/docs/types/object.md +62 -62
  90. package/docs/types/string.md +33 -33
  91. package/docs/types/symbol.md +29 -29
  92. package/docs/types/undefined.md +25 -25
  93. package/docs/types.md +44 -44
  94. package/eslint.config.mjs +1664 -1664
  95. package/index.mjs +40 -37
  96. package/jest.config.mjs +31 -31
  97. package/package.json +48 -47
  98. package/prettier.config.mjs +224 -224
  99. package/src/classes/Convert.mjs +819 -0
  100. package/src/classes/Type.mjs +1285 -0
  101. package/src/helpers/array.mjs +107 -107
  102. package/src/helpers/empty.mjs +70 -70
  103. package/src/helpers/gettype.mjs +133 -133
  104. package/src/helpers/is_array.mjs +128 -128
  105. package/src/helpers/is_assoc.mjs +51 -51
  106. package/src/helpers/is_bigint.mjs +47 -47
  107. package/src/helpers/is_bool.mjs +43 -43
  108. package/src/helpers/is_boolean.mjs +43 -43
  109. package/src/helpers/is_class.mjs +87 -87
  110. package/src/helpers/is_float.mjs +67 -67
  111. package/src/helpers/is_function.mjs +74 -74
  112. package/src/helpers/is_infinity.mjs +52 -52
  113. package/src/helpers/is_int.mjs +57 -57
  114. package/src/helpers/is_integer.mjs +74 -74
  115. package/src/helpers/is_list.mjs +43 -43
  116. package/src/helpers/is_nan.mjs +51 -51
  117. package/src/helpers/is_null.mjs +37 -37
  118. package/src/helpers/is_number.mjs +49 -49
  119. package/src/helpers/is_numeric.mjs +64 -64
  120. package/src/helpers/is_object.mjs +72 -72
  121. package/src/helpers/is_scalar.mjs +45 -45
  122. package/src/helpers/is_string.mjs +46 -46
  123. package/src/helpers/is_symbol.mjs +46 -46
  124. package/src/helpers/is_undefined.mjs +44 -44
  125. package/src/helpers/print.mjs +245 -245
  126. package/src/helpers/print_type.mjs +261 -261
  127. package/src/helpers/settype.mjs +101 -101
  128. package/src/helpers/to_array.mjs +118 -118
  129. package/src/helpers/to_assoc.mjs +98 -98
  130. package/src/helpers/to_bool.mjs +68 -68
  131. package/src/helpers/to_boolean.mjs +64 -64
  132. package/src/helpers/to_float.mjs +72 -72
  133. package/src/helpers/to_int.mjs +93 -93
  134. package/src/helpers/to_integer.mjs +81 -81
  135. package/src/helpers/to_list.mjs +56 -56
  136. package/src/helpers/to_object.mjs +94 -94
  137. package/src/helpers/to_string.mjs +157 -157
  138. package/tests/classes/Convert.test.mjs +399 -0
  139. package/tests/classes/Type.test.mjs +1263 -0
  140. package/tests/helpers/array.test.mjs +58 -58
  141. package/tests/helpers/empty.test.mjs +22 -22
  142. package/tests/helpers/gettype.test.mjs +74 -74
  143. package/tests/helpers/is_array.test.mjs +404 -404
  144. package/tests/helpers/is_assoc.test.mjs +42 -42
  145. package/tests/helpers/is_bigint.test.mjs +51 -51
  146. package/tests/helpers/is_bool.test.mjs +43 -43
  147. package/tests/helpers/is_boolean.test.mjs +43 -43
  148. package/tests/helpers/is_class.test.mjs +84 -84
  149. package/tests/helpers/is_float.test.mjs +87 -87
  150. package/tests/helpers/is_function.test.mjs +83 -83
  151. package/tests/helpers/is_infinity.test.mjs +46 -46
  152. package/tests/helpers/is_int.test.mjs +45 -45
  153. package/tests/helpers/is_integer.test.mjs +64 -64
  154. package/tests/helpers/is_list.test.mjs +42 -42
  155. package/tests/helpers/is_nan.test.mjs +43 -43
  156. package/tests/helpers/is_null.test.mjs +17 -17
  157. package/tests/helpers/is_number.test.mjs +25 -25
  158. package/tests/helpers/is_numeric.test.mjs +30 -30
  159. package/tests/helpers/is_object.test.mjs +52 -52
  160. package/tests/helpers/is_scalar.test.mjs +21 -21
  161. package/tests/helpers/is_string.test.mjs +20 -20
  162. package/tests/helpers/is_symbol.test.mjs +20 -20
  163. package/tests/helpers/is_undefined.test.mjs +18 -18
  164. package/tests/helpers/print.test.mjs +62 -62
  165. package/tests/helpers/print_type.test.mjs +62 -62
  166. package/tests/helpers/settype.test.mjs +34 -34
  167. package/tests/helpers/to_array.test.mjs +38 -38
  168. package/tests/helpers/to_assoc.test.mjs +33 -33
  169. package/tests/helpers/to_bool.test.mjs +51 -51
  170. package/tests/helpers/to_boolean.test.mjs +51 -51
  171. package/tests/helpers/to_float.test.mjs +26 -26
  172. package/tests/helpers/to_int.test.mjs +48 -48
  173. package/tests/helpers/to_integer.test.mjs +48 -48
  174. package/tests/helpers/to_list.test.mjs +32 -32
  175. package/tests/helpers/to_object.test.mjs +36 -36
  176. package/tests/helpers/to_string.test.mjs +71 -71
@@ -0,0 +1,1285 @@
1
+ import empty from '../helpers/empty.mjs';
2
+ import is_array from '../helpers/is_array.mjs';
3
+ import is_assoc from '../helpers/is_assoc.mjs';
4
+ import is_bigint from '../helpers/is_bigint.mjs';
5
+ import is_bool from '../helpers/is_bool.mjs';
6
+ import is_class from '../helpers/is_class.mjs';
7
+ import is_float from '../helpers/is_float.mjs';
8
+ import is_function from '../helpers/is_function.mjs';
9
+ import is_infinity from '../helpers/is_infinity.mjs';
10
+ import is_int from '../helpers/is_int.mjs';
11
+ import is_list from '../helpers/is_list.mjs';
12
+ import is_nan from '../helpers/is_nan.mjs';
13
+ import is_null from '../helpers/is_null.mjs';
14
+ import is_number from '../helpers/is_number.mjs';
15
+ import is_numeric from '../helpers/is_numeric.mjs';
16
+ import is_object from '../helpers/is_object.mjs';
17
+ import is_scalar from '../helpers/is_scalar.mjs';
18
+ import is_string from '../helpers/is_string.mjs';
19
+ import is_symbol from '../helpers/is_symbol.mjs';
20
+ import is_undefined from '../helpers/is_undefined.mjs';
21
+
22
+ /**
23
+ * Класс `Type` предоставляет методы для проверки типов данных в JavaScript.
24
+ *
25
+ * ### Описание
26
+ *
27
+ * Класс `Type` включает в себя статические методы, которые позволяют проверять типы различных значений.
28
+ * Эти методы охватывают широкий спектр типов данных, включая примитивы, объекты, массивы, функции и специальные значения.
29
+ *
30
+ * ### Методы
31
+ *
32
+ * - `Type.isEmpty(value)` - Проверяет, является ли переменная пустой.
33
+ * - `Type.isArray(value)` - Проверяет, является ли переданное значение массивом или ассоциативным массивом.
34
+ * - `Type.isAssoc(value)` - Проверяет, является ли значение ассоциативным массивом.
35
+ * - `Type.isBigInt(value)` - Проверяет, является ли значение типом `bigint`.
36
+ * - `Type.isBool(value)` - Проверяет, является ли переданное значение логическим типом (`boolean`).
37
+ * - `Type.isBoolean(value)` - Проверяет, является ли переданное значение логическим типом (`boolean`).
38
+ * - `Type.isClass(value)` - Проверяет, является ли переданная переменная классом.
39
+ * - `Type.isFloat(value)` - Проверяет, является ли значение числом с плавающей точкой.
40
+ * - `Type.isFunction(value)` - Проверяет, что значение является функцией, исключая классы.
41
+ * - `Type.isInfinity(value)` - Проверяет, является ли значение бесконечностью (Infinity или -Infinity).
42
+ * - `Type.isInt(value)` - Проверяет, является ли значение целым числом.
43
+ * - `Type.isInteger(value)` - Проверяет, является ли значение целым числом.
44
+ * - `Type.isList(value)` - Проверяет, является ли значение списком.
45
+ * - `Type.isNaN(value)` - Проверяет, является ли значение NaN.
46
+ * - `Type.isNull(value)` - Проверяет, является ли значение `null`.
47
+ * - `Type.isNumber(value)` - Проверяет, является ли значение числом.
48
+ * - `Type.isNumeric(value)` - Проверяет, является ли значение числом или числовой строкой.
49
+ * - `Type.isObject(value)` - Проверяет, является ли переданная переменная объектом.
50
+ * - `Type.isScalar(value)` - Проверяет, является ли значение скалярным.
51
+ * - `Type.isString(value)` - Проверяет, является ли значение строкой.
52
+ * - `Type.isSymbol(value)` - Проверяет, является ли значение символом.
53
+ * - `Type.isUndefined(value)` - Проверяет, является ли значение `undefined`.
54
+ *
55
+ * ### Примеры использования
56
+ *
57
+ * ```js
58
+ * // Проверка пустых значений
59
+ * Type.isEmpty(null); // true
60
+ * Type.isEmpty(''); // true
61
+ *
62
+ * // Проверка массивов и ассоциативных массивов
63
+ * Type.isArray([1, 2, 3]); // true
64
+ * Type.isArray({ foo: 'bar' }); // true
65
+ *
66
+ * // Проверка логических значений
67
+ * Type.isBool(true); // true
68
+ * Type.isBoolean(false); // true
69
+ *
70
+ * // Проверка чисел и числовых строк
71
+ * Type.isNumber(42); // true
72
+ * Type.isNumeric('42'); // true
73
+ *
74
+ * // Проверка объектов и символов
75
+ * Type.isObject({}); // true
76
+ * Type.isSymbol(Symbol('symbol')); // true
77
+ *
78
+ * // Проверка функций и классов
79
+ * function test() {}
80
+ * class MyClass {}
81
+ * Type.isFunction(test); // true
82
+ * Type.isClass(MyClass); // true
83
+ * ```
84
+ */
85
+ class Type {
86
+ /**
87
+ * Проверяет, является ли переменная пустой.
88
+ *
89
+ * ### Описание
90
+ *
91
+ * Метод `Type.isEmpty` используется для проверки, является ли переменная пустой. Пустыми считаются значения `null`, `undefined`, пустая строка, `0`, `false`, пустой массив и пустой объект.
92
+ *
93
+ * ### Параметры
94
+ *
95
+ * - `value` (any)
96
+ * Переменная, которую необходимо проверить на пустоту.
97
+ *
98
+ * ### Возвращаемое значение
99
+ *
100
+ * Возвращает `true`, если переменная пустая, и `false` в противном случае.
101
+ *
102
+ * ### Примеры использования
103
+ *
104
+ * 1. Проверка пустых значений:
105
+ *
106
+ * ```js
107
+ * const result1 = Type.isEmpty(null);
108
+ * // Результат: true
109
+ *
110
+ * const result2 = Type.isEmpty(undefined);
111
+ * // Результат: true
112
+ *
113
+ * const result3 = Type.isEmpty('');
114
+ * // Результат: true
115
+ *
116
+ * const result4 = Type.isEmpty(0);
117
+ * // Результат: true
118
+ *
119
+ * const result5 = Type.isEmpty(false);
120
+ * // Результат: true
121
+ *
122
+ * const result6 = Type.isEmpty([]);
123
+ * // Результат: true
124
+ *
125
+ * const result7 = Type.isEmpty({});
126
+ * // Результат: true
127
+ * ```
128
+ *
129
+ * 2. Проверка непустых значений:
130
+ *
131
+ * ```js
132
+ * const result1 = Type.isEmpty('example');
133
+ * // Результат: false
134
+ *
135
+ * const result2 = Type.isEmpty(123);
136
+ * // Результат: false
137
+ *
138
+ * const result3 = Type.isEmpty(true);
139
+ * // Результат: false
140
+ *
141
+ * const result4 = Type.isEmpty([1, 2, 3]);
142
+ * // Результат: false
143
+ *
144
+ * const result5 = Type.isEmpty({ key: 'value' });
145
+ * // Результат: false
146
+ * ```
147
+ *
148
+ * @param {any} value Переменная, которую необходимо проверить на пустоту.
149
+ * @returns {boolean} Возвращает `true`, если переменная пустая, и `false` в противном случае.
150
+ */
151
+ static isEmpty(value) {
152
+ return empty(value);
153
+ }
154
+
155
+ /**
156
+ * Проверяет, является ли переданное значение массивом или ассоциативным массивом (объектом с ключами и значениями).
157
+ *
158
+ * ### Описание
159
+ *
160
+ * В JavaScript массивы и объекты имеют разные структуры и предназначения:
161
+ *
162
+ * - Массивы (Array) являются упорядоченными коллекциями элементов, которые могут быть индексированы.
163
+ * - Объекты (Object) содержат пары "ключ-значение", которые могут быть неупорядоченными.
164
+ *
165
+ * Этот метод проверяет, является ли переданное значение обычным массивом (например, `[1, 2, 3]`),
166
+ * либо ассоциативным массивом (объектом с парами "ключ-значение", например, `{foo: 'bar'}`).
167
+ *
168
+ * ### Алгоритм работы метода
169
+ *
170
+ * 1. Сначала проверяется, является ли переданное значение обычным массивом с помощью встроенного метода `Array.isArray(value)`. Если это массив, метод сразу возвращает `true`.
171
+ *
172
+ * 2. Если переменная не является массивом, то выполняются дополнительные проверки:
173
+ *
174
+ * - Проверяется, что значение не равно `null` (так как `null` в JavaScript также является объектом, но не является ни массивом, ни объектом с парами "ключ-значение").
175
+ * - Проверяется, что значение является объектом JavaScript (с помощью `typeof value === 'object'`).
176
+ * - Проверяется, что прототип объекта совпадает с `Object.prototype` (это объект, от которого наследуются все объекты в JavaScript) или является `null` (это означает, что объект был создан с помощью `Object.create(null)` и не имеет прототипа).
177
+ * - Исключаются массивоподобные объекты (например, `arguments`, `NodeList`), путем проверки, что свойство `length` не является собственным свойством объекта.
178
+ * - Дополнительно проверяется, что объект является простым (его конструктор равен `Object`), а также исключаются встроенные объекты (`Math`, `JSON`, `Reflect`, `Intl`), для которых метод возвращает `true`.
179
+ *
180
+ * ### Параметры
181
+ *
182
+ * - `value` (any)
183
+ * Проверяемая переменная.
184
+ *
185
+ * ### Возвращаемое значение
186
+ *
187
+ * Возвращает `true`, если переменная является обычным массивом (`Array`), ассоциативным массивом (объектом с парами "ключ-значение"), ассоциативным массивом, созданным с помощью `Object.create(null)`. В остальных случаях метод возвращает `false`.
188
+ *
189
+ * ### Примеры использования
190
+ *
191
+ * 1. Простые массивы:
192
+ *
193
+ * ```js
194
+ * Type.isArray([1, 2, 3]); // true
195
+ * Type.isArray([]); // true
196
+ * ```
197
+ *
198
+ * 2. Ассоциативные массивы (объекты с ключами и значениями):
199
+ *
200
+ * ```js
201
+ * Type.isArray({ foo: 'bar', baz: 42 }); // true
202
+ * Type.isArray({ '0': 'a', '1': 'b' }); // true
203
+ * ```
204
+ *
205
+ * 3. Объекты, созданные без прототипа:
206
+ *
207
+ * ```js
208
+ * const noProtoObject = Object.create(null);
209
+ * noProtoObject.foo = 'bar';
210
+ * Type.isArray(noProtoObject); // true
211
+ * ```
212
+ *
213
+ * 4. Примитивы и невалидные значения:
214
+ *
215
+ * ```js
216
+ * Type.isArray(null); // false
217
+ * Type.isArray(undefined); // false
218
+ * Type.isArray(42); // false
219
+ * Type.isArray('hello'); // false
220
+ * ```
221
+ *
222
+ * 5. Специальные объекты:
223
+ *
224
+ * ```js
225
+ * Type.isArray(new Map()); // false
226
+ * Type.isArray(new Set()); // false
227
+ * Type.isArray(() => {}); // false
228
+ * ```
229
+ *
230
+ * 6. Классы и их экземпляры:
231
+ *
232
+ * ```js
233
+ * class MyClass {}
234
+ * const instance = new MyClass();
235
+ * Type.isArray(instance); // false
236
+ * ```
237
+ *
238
+ * @param {any} value Проверяемая переменная.
239
+ * @returns {boolean} Возвращает `true`, если значение является массивом или ассоциативным массивом, иначе `false`.
240
+ */
241
+ static isArray(value) {
242
+ return is_array(value);
243
+ }
244
+
245
+ /**
246
+ * Проверяет, является ли значение ассоциативным массивом.
247
+ *
248
+ * ### Описание
249
+ *
250
+ * Ассоциативные массивы в JavaScript представляют собой объекты с парами "ключ-значение".
251
+ * Этот метод проверяет, является ли переданное значение ассоциативным массивом.
252
+ *
253
+ * Метод использует функцию `is_array` для проверки значения и убеждается, что значение не является обычным массивом.
254
+ *
255
+ * ### Параметры
256
+ *
257
+ * - `value` (any)
258
+ * Значение, которое необходимо проверить.
259
+ *
260
+ * ### Возвращаемое значение
261
+ *
262
+ * Возвращает `true`, если значение является ассоциативным массивом, и `false` в противном случае.
263
+ *
264
+ * ### Примеры использования
265
+ *
266
+ * 1. Ассоциативные массивы:
267
+ *
268
+ * ```js
269
+ * Type.isAssoc({ foo: 'bar' }); // true
270
+ * Type.isAssoc({}); // true
271
+ * ```
272
+ *
273
+ * 2. Обычные массивы:
274
+ *
275
+ * ```js
276
+ * Type.isAssoc([]); // false
277
+ * Type.isAssoc([1, 2, 3]); // false
278
+ * ```
279
+ *
280
+ * 3. Значения других типов:
281
+ *
282
+ * ```js
283
+ * Type.isAssoc('string'); // false
284
+ * Type.isAssoc(42); // false
285
+ * Type.isAssoc(null); // false
286
+ * Type.isAssoc(undefined); // false
287
+ * ```
288
+ *
289
+ * @param {any} value Значение, которое необходимо проверить.
290
+ * @returns {boolean} Возвращает `true`, если значение является ассоциативным массивом, и `false` в противном случае.
291
+ */
292
+ static isAssoc(value) {
293
+ return is_assoc(value);
294
+ }
295
+
296
+ /**
297
+ * Проверяет, является ли значение типом `bigint`.
298
+ *
299
+ * ### Описание
300
+ *
301
+ * Метод `Type.isBigInt` проверяет, является ли переданное значение типом `bigint`.
302
+ *
303
+ * ### Параметры
304
+ *
305
+ * - `value` (any)
306
+ * Значение, которое необходимо проверить.
307
+ *
308
+ * ### Возвращаемое значение
309
+ *
310
+ * Возвращает `true`, если значение является типом `bigint`, и `false` в противном случае.
311
+ *
312
+ * ### Примеры использования
313
+ *
314
+ * #### Пример 1: Проверка значений типа bigint
315
+ *
316
+ * ```js
317
+ * Type.isBigInt(BigInt(123456)); // true
318
+ * Type.isBigInt(BigInt(-123456)); // true
319
+ * ```
320
+ *
321
+ * #### Пример 2: Проверка значений других типов
322
+ *
323
+ * ```js
324
+ * Type.isBigInt(42); // false (число)
325
+ * Type.isBigInt('42'); // false (строка)
326
+ * Type.isBigInt(true); // false (логическое значение)
327
+ * Type.isBigInt(null); // false
328
+ * Type.isBigInt(undefined); // false
329
+ * Type.isBigInt({}); // false (объект)
330
+ * Type.isBigInt([]); // false (массив)
331
+ * ```
332
+ *
333
+ * @param {any} value Значение, которое необходимо проверить.
334
+ * @returns {boolean} Возвращает `true`, если значение является типом bigint, и `false` в противном случае.
335
+ */
336
+ static isBigInt(value) {
337
+ return is_bigint(value);
338
+ }
339
+
340
+ /**
341
+ * Проверяет, является ли переданное значение логическим типом (`boolean`).
342
+ *
343
+ * ### Описание
344
+ *
345
+ * В JavaScript логическое значение может быть только двумя состояниями: `true` или `false`.
346
+ * Метод проверяет тип переданного значения с использованием оператора `typeof`.
347
+ * Если значение является примитивом типа `boolean`, метод возвращает `true`.
348
+ * Для всех других типов (включая объекты, строки, числа, `null`, `undefined` и другие) метод вернёт `false`.
349
+ *
350
+ * #### Примечание
351
+ *
352
+ * - Метод возвращает `false` для объектов типа `Boolean`, созданных с помощью конструктора `new Boolean()`.
353
+ * - Возвращает `false` для массивов, объектов и других типов данных, отличных от `boolean`.
354
+ *
355
+ * ### Параметры
356
+ *
357
+ * - `value` (any):
358
+ * Проверяемая переменная.
359
+ *
360
+ * ### Возвращаемое значение
361
+ *
362
+ * Возвращает `true`, если значение `value` является логическим (`boolean`), иначе `false`.
363
+ *
364
+ * ### Примеры использования
365
+ *
366
+ * ```js
367
+ * Type.isBool(true); // Возвращает: true
368
+ * Type.isBool(false); // Возвращает: true
369
+ * Type.isBool(0); // Возвращает: false
370
+ * Type.isBool('true'); // Возвращает: false
371
+ * Type.isBool(null); // Возвращает: false
372
+ * Type.isBool([]); // Возвращает: false
373
+ * Type.isBool({}); // Возвращает: false
374
+ * Type.isBool(new Boolean(true)); // Возвращает: false
375
+ * ```
376
+ *
377
+ * @param {any} value Проверяемая переменная.
378
+ * @returns {boolean} Возвращает `true`, если значение является логическим, иначе `false`.
379
+ */
380
+ static isBool(value) {
381
+ return is_bool(value);
382
+ }
383
+
384
+ /**
385
+ * Проверяет, является ли переданное значение логическим типом (`boolean`).
386
+ *
387
+ * ### Описание
388
+ *
389
+ * В JavaScript логическое значение может быть только двумя состояниями: `true` или `false`.
390
+ * Метод проверяет тип переданного значения с использованием оператора `typeof`.
391
+ * Если значение является примитивом типа `boolean`, метод возвращает `true`.
392
+ * Для всех других типов (включая объекты, строки, числа, `null`, `undefined` и другие) метод вернёт `false`.
393
+ *
394
+ * #### Примечание
395
+ *
396
+ * - Метод возвращает `false` для объектов типа `Boolean`, созданных с помощью конструктора `new Boolean()`.
397
+ * - Возвращает `false` для массивов, объектов и других типов данных, отличных от `boolean`.
398
+ *
399
+ * ### Параметры
400
+ *
401
+ * - `value` (any):
402
+ * Проверяемая переменная.
403
+ *
404
+ * ### Возвращаемое значение
405
+ *
406
+ * Возвращает `true`, если значение `value` является логическим (`boolean`), иначе `false`.
407
+ *
408
+ * ### Примеры использования
409
+ *
410
+ * ```js
411
+ * Type.isBoolean(true); // Возвращает: true
412
+ * Type.isBoolean(false); // Возвращает: true
413
+ * Type.isBoolean(0); // Возвращает: false
414
+ * Type.isBoolean('true'); // Возвращает: false
415
+ * Type.isBoolean(null); // Возвращает: false
416
+ * Type.isBoolean([]); // Возвращает: false
417
+ * Type.isBoolean({}); // Возвращает: false
418
+ * Type.isBoolean(new Boolean(true)); // Возвращает: false
419
+ * ```
420
+ *
421
+ * @param {any} value Проверяемая переменная.
422
+ * @returns {boolean} Возвращает `true`, если значение является логическим, иначе `false`.
423
+ */
424
+ static isBoolean(value) {
425
+ return is_bool(value);
426
+ }
427
+
428
+ /**
429
+ * Проверяет, является ли переданная переменная классом.
430
+ *
431
+ * ### Параметры
432
+ *
433
+ * - `value` (any)
434
+ * Проверяемая переменная.
435
+ *
436
+ * ### Описание
437
+ *
438
+ * В JavaScript классы являются функциями, но с уникальным поведением.
439
+ *
440
+ * Для определения класса метод проверяет:
441
+ *
442
+ * 1. Что переданная переменная является функцией.
443
+ * 2. Что строковое представление функции начинается с `class `.
444
+ *
445
+ * #### Примечание
446
+ *
447
+ * Конструкторы функций, созданные с помощью `function`, не будут распознаны как классы.
448
+ *
449
+ * Для примера:
450
+ *
451
+ * ```js
452
+ * function Foo() {}
453
+ * Type.isClass(Foo); // Возвращает: false
454
+ * ```
455
+ *
456
+ * В отличие от классов, которые выглядят так:
457
+ *
458
+ * ```js
459
+ * class MyClass {}
460
+ * Type.isClass(MyClass); // Возвращает: true
461
+ * ```
462
+ *
463
+ * ### Возвращаемое значение
464
+ *
465
+ * Возвращает `true`, если значение является классом, иначе `false`.
466
+ *
467
+ * ### Примеры использования
468
+ *
469
+ * 1. Классы:
470
+ *
471
+ * ```js
472
+ * class MyClass {}
473
+ * Type.isClass(MyClass); // true
474
+ * ```
475
+ *
476
+ * 2. Функции-конструкторы:
477
+ *
478
+ * ```js
479
+ * function MyFunction() {}
480
+ * Type.isClass(MyFunction); // false
481
+ * ```
482
+ *
483
+ * 3. Объекты и примитивы:
484
+ *
485
+ * ```js
486
+ * Type.isClass({}); // false
487
+ * Type.isClass([]); // false
488
+ * Type.isClass(null); // false
489
+ * Type.isClass(42); // false
490
+ * ```
491
+ *
492
+ * @param {any} value Проверяемая переменная.
493
+ * @returns {boolean} Возвращает `true`, если значение является классом, иначе `false`.
494
+ */
495
+ static isClass(value) {
496
+ return is_class(value);
497
+ }
498
+
499
+ /**
500
+ * Проверяет, является ли значение числом с плавающей точкой.
501
+ *
502
+ * ### Параметры
503
+ *
504
+ * - `value` (any)
505
+ * Значение для проверки.
506
+ *
507
+ * ### Описание
508
+ *
509
+ * Метод `Type.isFloat` проверяет, является ли переданное значение числом с дробной частью, которое отличается от целого числа.
510
+ *
511
+ * Она работает следующим образом:
512
+ *
513
+ * 1. Проверяет, что значение имеет тип `number`.
514
+ * 2. Исключает значения `NaN`, которые также относятся к типу `number`, но не считаются числовыми значениями.
515
+ * 3. Проверяет, что у числа есть дробная часть, проверяя остаток от деления на `1` (`value % 1 !== 0`).
516
+ *
517
+ * Значения, которые не являются числами или числа без дробной части, не считаются числами с плавающей точкой.
518
+ *
519
+ * ### Возвращаемое значение
520
+ *
521
+ * Возвращает `true`, если значение является числом с плавающей точкой, иначе `false`.
522
+ *
523
+ * ### Примеры использования
524
+ *
525
+ * #### Числа с плавающей точкой
526
+ *
527
+ * ```js
528
+ * Type.isFloat(3.14); // true
529
+ * Type.isFloat(-0.5); // true
530
+ * Type.isFloat(0.1 + 0.2); // true
531
+ * ```
532
+ *
533
+ * #### Целые числа
534
+ *
535
+ * ```js
536
+ * Type.isFloat(0); // false
537
+ * Type.isFloat(42); // false
538
+ * Type.isFloat(-100); // false
539
+ * ```
540
+ *
541
+ * #### Нечисловые значения
542
+ *
543
+ * ```js
544
+ * Type.isFloat('3.14'); // false
545
+ * Type.isFloat(NaN); // false
546
+ * Type.isFloat(null); // false
547
+ * Type.isFloat(undefined); // false
548
+ * Type.isFloat(true); // false
549
+ * Type.isFloat({}); // false
550
+ * Type.isFloat([]); // false
551
+ * ```
552
+ *
553
+ * #### Специальные значения
554
+ *
555
+ * ```js
556
+ * Type.isFloat(Infinity); // false
557
+ * Type.isFloat(-Infinity); // false
558
+ * ```
559
+ *
560
+ * @param {any} value Значение для проверки.
561
+ * @returns {boolean} Возвращает `true`, если значение является числом с плавающей точкой, иначе `false`.
562
+ */
563
+ static isFloat(value) {
564
+ return is_float(value);
565
+ }
566
+
567
+ /**
568
+ * Проверяет, что значение является функцией, исключая классы.
569
+ *
570
+ * ### Параметры
571
+ *
572
+ * - `value` (any):
573
+ * Проверяемое значение. Может быть любым типом данных.
574
+ *
575
+ * ### Описание
576
+ *
577
+ * Метод проверяет, является ли переданное значение функцией, исключая классы.
578
+ * В JavaScript функции и классы оба являются типом `function`, но классы имеют особый синтаксис и поведение.
579
+ * Метод `Type.isFunction` различает их, проверяя, не начинается ли строковое представление функции с `class`, что указывает на то, что это класс, а не обычная функция.
580
+ * Если значение является функцией (но не классом), метод возвращает `true`.
581
+ * Для всех остальных типов данных (включая классы, объекты, примитивы) метод возвращает `false`.
582
+ *
583
+ * ### Возвращаемое значение
584
+ *
585
+ * Возвращает `true`, если переданное значение является функцией (но не классом).
586
+ * Возвращает `false`, если переданное значение является классом или любым другим типом данных.
587
+ *
588
+ * ### Примеры использования
589
+ *
590
+ * Пример 1: обычная функция
591
+ *
592
+ * ```js
593
+ * function test() {}
594
+ * Type.isFunction(test); // Возвращает: true
595
+ * ```
596
+ *
597
+ * Пример 2: класс
598
+ *
599
+ * ```js
600
+ * class MyClass {}
601
+ * Type.isFunction(MyClass); // Возвращает: false
602
+ * ```
603
+ *
604
+ * Пример 3: объект
605
+ *
606
+ * ```js
607
+ * const obj = {};
608
+ * Type.isFunction(obj); // Возвращает: false
609
+ * ```
610
+ *
611
+ * Пример 4: примитив
612
+ *
613
+ * ```js
614
+ * Type.isFunction(42); // Возвращает: false
615
+ * Type.isFunction('hello'); // Возвращает: false
616
+ * ```
617
+ *
618
+ * @param {any} value - Проверяемое значение.
619
+ * @returns {boolean} Возвращает `true`, если значение является функцией, иначе `false`.
620
+ */
621
+ static isFunction(value) {
622
+ return is_function(value);
623
+ }
624
+
625
+ /**
626
+ * Проверяет, является ли значение бесконечностью (Infinity или -Infinity).
627
+ *
628
+ * ### Параметры
629
+ *
630
+ * - `value` (any)
631
+ * Значение, которое необходимо проверить.
632
+ *
633
+ * ### Описание
634
+ *
635
+ * Метод `Type.isInfinity` проверяет, является ли переданное значение бесконечностью (Infinity или -Infinity).
636
+ *
637
+ * Он проверяет, равно ли значение `Number.POSITIVE_INFINITY` или `Number.NEGATIVE_INFINITY`.
638
+ *
639
+ * ### Возвращаемое значение
640
+ *
641
+ * Возвращает `true`, если значение является бесконечностью, и `false` в противном случае.
642
+ *
643
+ * ### Примеры использования
644
+ *
645
+ * #### Пример 1: Проверка значения Infinity
646
+ *
647
+ * ```js
648
+ * Type.isInfinity(Infinity); // true
649
+ * Type.isInfinity(-Infinity); // true
650
+ * ```
651
+ *
652
+ * #### Пример 2: Проверка числовых значений
653
+ *
654
+ * ```js
655
+ * Type.isInfinity(42); // false
656
+ * Type.isInfinity(3.14); // false
657
+ * Type.isInfinity(NaN); // false
658
+ * ```
659
+ *
660
+ * #### Пример 3: Проверка значений других типов
661
+ *
662
+ * ```js
663
+ * Type.isInfinity('Infinity'); // false (строка)
664
+ * Type.isInfinity(true); // false (логическое значение)
665
+ * Type.isInfinity(null); // false
666
+ * Type.isInfinity(undefined); // false
667
+ * Type.isInfinity({}); // false (объект)
668
+ * Type.isInfinity([]); // false (массив)
669
+ * ```
670
+ *
671
+ * @param {any} value Значение, которое необходимо проверить.
672
+ * @returns {boolean} Возвращает `true`, если значение является бесконечностью, и `false` в противном случае.
673
+ */
674
+ static isInfinity(value) {
675
+ return is_infinity(value);
676
+ }
677
+
678
+ /**
679
+ * Проверяет, является ли значение целым числом.
680
+ *
681
+ * ### Параметры
682
+ *
683
+ * - `value` (any)
684
+ * Значение, которое нужно проверить.
685
+ *
686
+ * ### Описание
687
+ *
688
+ * Метод `Type.isInt` определяет, является ли переданное значение целым числом.
689
+ *
690
+ * Он выполняет следующие проверки:
691
+ *
692
+ * 1. **Тип значения**: Убеждается, что `value` имеет тип `number`.
693
+ * 2. **Конечность числа**: Проверяет, что значение не является `Infinity` или `NaN` с помощью `Number.isFinite(value)`.
694
+ * 3. **Целочисленность**: Убедится, что остаток от деления числа на 1 равен нулю (`value % 1 === 0`).
695
+ *
696
+ * Если значение соответствует всем этим условиям, оно считается целым числом.
697
+ *
698
+ * ### Возвращаемое значение
699
+ *
700
+ * Возвращает `true`, если значение является целым числом, иначе `false`.
701
+ *
702
+ * ### Примеры использования
703
+ *
704
+ * ```js
705
+ * // Проверка целых чисел
706
+ * Type.isInt(42); // true
707
+ * Type.isInt(0); // true
708
+ * Type.isInt(-123); // true
709
+ *
710
+ * // Проверка дробных чисел
711
+ * Type.isInt(3.14); // false
712
+ * Type.isInt(-0.001); // false
713
+ *
714
+ * // Некорректные типы данных
715
+ * Type.isInt('42'); // false (строка)
716
+ * Type.isInt(true); // false (логическое значение)
717
+ * Type.isInt(null); // false (null)
718
+ * Type.isInt(undefined);// false (undefined)
719
+ *
720
+ * // Бесконечные и некорректные числовые значения
721
+ * Type.isInt(Infinity); // false (бесконечность)
722
+ * Type.isInt(-Infinity);// false (отрицательная бесконечность)
723
+ * Type.isInt(NaN); // false (не число)
724
+ *
725
+ * // Проверка типа bigint
726
+ * Type.isInt(BigInt(123456)); // false
727
+ * ```
728
+ *
729
+ * @param {any} value Значение для проверки.
730
+ * @returns {boolean} Возвращает `true`, если значение является целым числом, иначе `false`.
731
+ */
732
+ static isInt(value) {
733
+ return is_int(value);
734
+ }
735
+
736
+ /**
737
+ * Проверяет, является ли значение целым числом.
738
+ *
739
+ * ### Параметры
740
+ *
741
+ * - `value` (any)
742
+ * Значение, которое необходимо проверить.
743
+ *
744
+ * ### Описание
745
+ *
746
+ * Метод `Type.isInteger` проверяет, является ли переданное значение целым числом.
747
+ *
748
+ * 1. Проверяется, что значение имеет тип `number`.
749
+ * 2. Убеждается, что значение является конечным числом.
750
+ * 3. Проверяется, что остаток от деления значения на 1 равен 0.
751
+ *
752
+ * Метод возвращает `false` для:
753
+ *
754
+ * - Чисел с плавающей точкой (например, `3.14`, `-0.99`).
755
+ * - Специальных чисел (`NaN`, `Infinity`, `-Infinity`).
756
+ * - Значений других типов, таких как строки, объекты или массивы.
757
+ *
758
+ * ### Возвращаемое значение
759
+ *
760
+ * Возвращает `true`, если значение является целым числом, и `false` в противном случае.
761
+ *
762
+ * ### Примеры использования
763
+ *
764
+ * #### Пример 1: Проверка целых чисел
765
+ *
766
+ * ```js
767
+ * Type.isInteger(42); // true
768
+ * Type.isInteger(-7); // true
769
+ * Type.isInteger(0); // true
770
+ * ```
771
+ *
772
+ * #### Пример 2: Проверка чисел с плавающей точкой
773
+ *
774
+ * ```js
775
+ * Type.isInteger(3.14); // false
776
+ * Type.isInteger(-0.5); // false
777
+ * ```
778
+ *
779
+ * #### Пример 3: Проверка специальных чисел
780
+ *
781
+ * ```js
782
+ * Type.isInteger(NaN); // false
783
+ * Type.isInteger(Infinity); // false
784
+ * Type.isInteger(-Infinity); // false
785
+ * ```
786
+ *
787
+ * #### Пример 4: Проверка других типов данных
788
+ *
789
+ * ```js
790
+ * Type.isInteger('42'); // false (строка)
791
+ * Type.isInteger(true); // false (логическое значение)
792
+ * Type.isInteger(null); // false
793
+ * Type.isInteger(undefined); // false
794
+ * Type.isInteger({}); // false (объект)
795
+ * Type.isInteger([]); // false (массив)
796
+ * ```
797
+ *
798
+ * #### Пример 5: Проверка типа bigint
799
+ *
800
+ * ```js
801
+ * Type.isInteger(BigInt(123456)); // false
802
+ * ```
803
+ *
804
+ * @param {any} value Значение для проверки.
805
+ * @returns {boolean} Возвращает `true`, если значение является целым числом, иначе `false`.
806
+ */
807
+ static isInteger(value) {
808
+ return is_int(value);
809
+ }
810
+
811
+ /**
812
+ * Проверяет, является ли значение списком.
813
+ *
814
+ * ### Параметры
815
+ *
816
+ * - `value` (any)
817
+ * Значение, которое необходимо проверить.
818
+ *
819
+ * ### Описание
820
+ *
821
+ * Метод `Type.isList` проверяет, является ли переданное значение списком.
822
+ *
823
+ * Он использует метод `Array.isArray` для проверки значения.
824
+ *
825
+ * ### Возвращаемое значение
826
+ *
827
+ * Возвращает `true`, если значение является списком, и `false` в противном случае.
828
+ *
829
+ * ### Примеры использования
830
+ *
831
+ * #### Пример 1: Проверка массивов
832
+ *
833
+ * ```js
834
+ * Type.isList([]); // true
835
+ * Type.isList([1, 2, 3]); // true
836
+ * ```
837
+ *
838
+ * #### Пример 2: Проверка значений других типов
839
+ *
840
+ * ```js
841
+ * Type.isList({}); // false (ассоциативный массив)
842
+ * Type.isList('string'); // false (строка)
843
+ * Type.isList(42); // false (число)
844
+ * Type.isList(null); // false
845
+ * Type.isList(undefined); // false
846
+ * ```
847
+ *
848
+ * @param {any} value Значение, которое необходимо проверить.
849
+ * @returns {boolean} Возвращает `true`, если значение является списком, и `false` в противном случае.
850
+ */
851
+ static isList(value) {
852
+ return is_list(value);
853
+ }
854
+
855
+ /**
856
+ * Проверяет, является ли значение NaN.
857
+ *
858
+ * ### Параметры
859
+ *
860
+ * - `value` (any)
861
+ * Значение, которое необходимо проверить.
862
+ *
863
+ * ### Описание
864
+ *
865
+ * Метод `Type.isNaN` проверяет, является ли переданное значение NaN (Not-a-Number).
866
+ *
867
+ * Он использует метод `Number.isNaN` для проверки значения.
868
+ *
869
+ * ### Возвращаемое значение
870
+ *
871
+ * Возвращает `true`, если значение является NaN, и `false` в противном случае.
872
+ *
873
+ * ### Примеры использования
874
+ *
875
+ * #### Пример 1: Проверка значения NaN
876
+ *
877
+ * ```js
878
+ * Type.isNaN(NaN); // true
879
+ * ```
880
+ *
881
+ * #### Пример 2: Проверка числовых значений
882
+ *
883
+ * ```js
884
+ * Type.isNaN(42); // false
885
+ * Type.isNaN(3.14); // false
886
+ * Type.isNaN(Infinity); // false
887
+ * ```
888
+ *
889
+ * #### Пример 3: Проверка значений других типов
890
+ *
891
+ * ```js
892
+ * Type.isNaN('42'); // false (строка)
893
+ * Type.isNaN(true); // false (логическое значение)
894
+ * Type.isNaN(null); // false
895
+ * Type.isNaN(undefined); // false
896
+ * Type.isNaN({}); // false (объект)
897
+ * Type.isNaN([]); // false (массив)
898
+ * ```
899
+ *
900
+ * @param {any} value Значение, которое необходимо проверить.
901
+ * @returns {boolean} Возвращает `true`, если значение является NaN, и `false` в противном случае.
902
+ */
903
+ static isNaN(value) {
904
+ return is_nan(value);
905
+ }
906
+
907
+ /**
908
+ * Проверяет, является ли значение `null`.
909
+ *
910
+ * ### Параметры
911
+ *
912
+ * - `value` (any)
913
+ * Значение, которое необходимо проверить.
914
+ *
915
+ * ### Описание
916
+ *
917
+ * Метод `Type.isNull` проверяет, является ли переданное значение `null`.
918
+ *
919
+ * Он просто сравнивает значение с `null`.
920
+ *
921
+ * ### Возвращаемое значение
922
+ *
923
+ * Возвращает `true`, если значение является `null`, и `false` в противном случае.
924
+ *
925
+ * ### Примеры использования
926
+ *
927
+ * #### Пример 1: Проверка значения `null`
928
+ *
929
+ * ```js
930
+ * Type.isNull(null); // true
931
+ * ```
932
+ *
933
+ * #### Пример 2: Проверка значений других типов
934
+ *
935
+ * ```js
936
+ * Type.isNull(undefined); // false
937
+ * Type.isNull(0); // false
938
+ * Type.isNull(''); // false
939
+ * Type.isNull(false); // false
940
+ * Type.isNull({}); // false
941
+ * Type.isNull([]); // false
942
+ * ```
943
+ *
944
+ * @param {any} value Значение, которое необходимо проверить.
945
+ * @returns {boolean} Возвращает `true`, если значение является `null`, и `false` в противном случае.
946
+ */
947
+ static isNull(value) {
948
+ return is_null(value);
949
+ }
950
+
951
+ /**
952
+ * Проверяет, является ли значение числом.
953
+ *
954
+ * ### Параметры
955
+ *
956
+ * - `value` (any)
957
+ * Значение, которое необходимо проверить.
958
+ *
959
+ * ### Описание
960
+ *
961
+ * Метод `Type.isNumber` проверяет, является ли переданное значение числом.
962
+ *
963
+ * Он использует оператор `typeof` для проверки типа значения.
964
+ *
965
+ * Метод возвращает `false` для значений других типов, таких как строки, объекты или массивы.
966
+ *
967
+ * ### Возвращаемое значение
968
+ *
969
+ * Возвращает `true`, если значение является числом, и `false` в противном случае.
970
+ *
971
+ * ### Примеры использования
972
+ *
973
+ * #### Пример 1: Проверка числовых значений
974
+ *
975
+ * ```js
976
+ * Type.isNumber(42); // true
977
+ * Type.isNumber(3.14); // true
978
+ * ```
979
+ *
980
+ * #### Пример 2: Проверка значений других типов
981
+ *
982
+ * ```js
983
+ * Type.isNumber('42'); // false (строка)
984
+ * Type.isNumber(true); // false (логическое значение)
985
+ * Type.isNumber(null); // false
986
+ * Type.isNumber(undefined); // false
987
+ * Type.isNumber({}); // false (объект)
988
+ * Type.isNumber([]); // false (массив)
989
+ * ```
990
+ *
991
+ * #### Пример 3: Проверка специальных чисел
992
+ *
993
+ * ```js
994
+ * Type.isNumber(NaN); // false
995
+ * Type.isNumber(Infinity); // false
996
+ * Type.isNumber(-Infinity); // false
997
+ * ```
998
+ *
999
+ * @param {any} value Значение, которое необходимо проверить.
1000
+ * @returns {boolean} Возвращает `true`, если значение является числом, и `false` в противном случае.
1001
+ */
1002
+ static isNumber(value) {
1003
+ return is_number(value);
1004
+ }
1005
+
1006
+ /**
1007
+ * Проверяет, является ли значение числом или числовой строкой.
1008
+ *
1009
+ * ### Параметры
1010
+ *
1011
+ * - `value` (any)
1012
+ * Значение, которое необходимо проверить.
1013
+ *
1014
+ * ### Описание
1015
+ *
1016
+ * Метод `Type.isNumeric` проверяет, является ли переданное значение числом или строкой, которая может быть преобразована в число.
1017
+ *
1018
+ * Он использует функцию `is_numeric` для выполнения проверки.
1019
+ *
1020
+ * ### Возвращаемое значение
1021
+ *
1022
+ * Возвращает `true`, если значение является числом или числовой строкой, и `false` в противном случае.
1023
+ *
1024
+ * ### Примеры использования
1025
+ *
1026
+ * #### Пример 1: Проверка числовых значений
1027
+ *
1028
+ * ```js
1029
+ * Type.isNumeric(42); // true
1030
+ * Type.isNumeric(3.14); // true
1031
+ * ```
1032
+ *
1033
+ * #### Пример 2: Проверка числовых строк
1034
+ *
1035
+ * ```js
1036
+ * Type.isNumeric('42'); // true
1037
+ * Type.isNumeric('3.14'); // true
1038
+ * ```
1039
+ *
1040
+ * #### Пример 3: Проверка значений других типов
1041
+ *
1042
+ * ```js
1043
+ * Type.isNumeric(true); // false (логическое значение)
1044
+ * Type.isNumeric(null); // false
1045
+ * Type.isNumeric(undefined); // false
1046
+ * Type.isNumeric({}); // false (объект)
1047
+ * Type.isNumeric([]); // false (массив)
1048
+ * Type.isNumeric('hello'); // false (строка)
1049
+ * ```
1050
+ *
1051
+ * @param {any} value Значение, которое необходимо проверить.
1052
+ * @returns {boolean} Возвращает `true`, если значение является числом или числовой строкой, и `false` в противном случае.
1053
+ */
1054
+ static isNumeric(value) {
1055
+ return is_numeric(value);
1056
+ }
1057
+
1058
+ /**
1059
+ * Проверяет, является ли переданная переменная объектом.
1060
+ *
1061
+ * ### Параметры
1062
+ *
1063
+ * - `value` (any)
1064
+ * Проверяемая переменная.
1065
+ *
1066
+ * ### Описание
1067
+ *
1068
+ * Метод `Type.isObject` проверяет, является ли переданное значение объектом.
1069
+ *
1070
+ * Он использует оператор `typeof` для проверки типа значения и убеждается, что значение не является `null`.
1071
+ *
1072
+ * Метод возвращает `false` для значений других типов, таких как числа, строки, массивы или функции.
1073
+ *
1074
+ * ### Возвращаемое значение
1075
+ *
1076
+ * Возвращает `true`, если значение является объектом, и `false` в противном случае.
1077
+ *
1078
+ * ### Примеры использования
1079
+ *
1080
+ * #### Пример 1: Проверка объектов
1081
+ *
1082
+ * ```js
1083
+ * Type.isObject({}); // true
1084
+ * Type.isObject({ key: 'value' }); // true
1085
+ * ```
1086
+ *
1087
+ * #### Пример 2: Проверка значений других типов
1088
+ *
1089
+ * ```js
1090
+ * Type.isObject(42); // false (число)
1091
+ * Type.isObject('string'); // false (строка)
1092
+ * Type.isObject(null); // false
1093
+ * Type.isObject(undefined); // false
1094
+ * Type.isObject([]); // false (массив)
1095
+ * Type.isObject(() => {}); // false (функция)
1096
+ * ```
1097
+ *
1098
+ * @param {any} value Проверяемая переменная.
1099
+ * @returns {boolean} Возвращает `true`, если значение является объектом, иначе `false`.
1100
+ */
1101
+ static isObject(value) {
1102
+ return is_object(value);
1103
+ }
1104
+
1105
+ /**
1106
+ * Проверяет, является ли значение скалярным.
1107
+ *
1108
+ * ### Параметры
1109
+ *
1110
+ * - `value` (any)
1111
+ * Проверяемая переменная.
1112
+ *
1113
+ * ### Описание
1114
+ *
1115
+ * Скалярные переменные — это переменные, содержащие `int`, `float`, `string`, `bool` и `symbol`.
1116
+ * Типы `array`, `object`, `null`, `undefined` — не скалярные.
1117
+ *
1118
+ * ### Возвращаемое значение
1119
+ *
1120
+ * Возвращает `true`, если значение является скалярным, иначе `false`.
1121
+ *
1122
+ * ### Примеры использования
1123
+ *
1124
+ * ```js
1125
+ * // Пример 1: Проверка скалярных значений
1126
+ * Type.isScalar(true); // true
1127
+ * Type.isScalar(42); // true
1128
+ * Type.isScalar('hello'); // true
1129
+ * Type.isScalar(Symbol('symbol')); // true
1130
+ *
1131
+ * // Пример 2: Проверка не скалярных значений
1132
+ * Type.isScalar(null); // false
1133
+ * Type.isScalar(undefined); // false
1134
+ * Type.isScalar({}); // false (объект)
1135
+ * Type.isScalar([]); // false (массив)
1136
+ * Type.isScalar(() => {}); // false (функция)
1137
+ * ```
1138
+ *
1139
+ * @param {any} value Проверяемая переменная.
1140
+ * @returns {boolean} Возвращает `true`, если значение является скалярным, иначе `false`.
1141
+ */
1142
+ static isScalar(value) {
1143
+ return is_scalar(value);
1144
+ }
1145
+
1146
+ /**
1147
+ * Проверяет, является ли значение строкой.
1148
+ *
1149
+ * ### Параметры
1150
+ *
1151
+ * - `value` (any)
1152
+ * Значение, которое необходимо проверить.
1153
+ *
1154
+ * ### Описание
1155
+ *
1156
+ * Метод `Type.isString` проверяет, является ли переданное значение строкой.
1157
+ *
1158
+ * Он использует оператор `typeof` для проверки типа значения.
1159
+ *
1160
+ * Метод возвращает `false` для значений других типов, таких как числа, объекты или массивы.
1161
+ *
1162
+ * ### Возвращаемое значение
1163
+ *
1164
+ * Возвращает `true`, если значение является строкой, и `false` в противном случае.
1165
+ *
1166
+ * ### Примеры использования
1167
+ *
1168
+ * #### Пример 1: Проверка строковых значений
1169
+ *
1170
+ * ```js
1171
+ * Type.isString('hello'); // true
1172
+ * Type.isString(''); // true
1173
+ * ```
1174
+ *
1175
+ * #### Пример 2: Проверка значений других типов
1176
+ *
1177
+ * ```js
1178
+ * Type.isString(42); // false (число)
1179
+ * Type.isString(true); // false (логическое значение)
1180
+ * Type.isString(null); // false
1181
+ * Type.isString(undefined); // false
1182
+ * Type.isString({}); // false (объект)
1183
+ * Type.isString([]); // false (массив)
1184
+ * ```
1185
+ *
1186
+ * @param {any} value Значение, которое необходимо проверить.
1187
+ * @returns {boolean} Возвращает `true`, если значение является строкой, иначе `false`.
1188
+ */
1189
+ static isString(value) {
1190
+ return is_string(value);
1191
+ }
1192
+
1193
+ /**
1194
+ * Проверяет, является ли значение символом.
1195
+ *
1196
+ * ### Параметры
1197
+ *
1198
+ * - `value` (any)
1199
+ * Проверяемая переменная.
1200
+ *
1201
+ * ### Описание
1202
+ *
1203
+ * Метод `Type.isSymbol` предназначен для проверки, является ли переданное значение символом.
1204
+ *
1205
+ * Он проверяет:
1206
+ *
1207
+ * 1. Что значение имеет тип `symbol`.
1208
+ *
1209
+ * Метод возвращает `false` для всех значений, не принадлежащих типу `symbol`.
1210
+ *
1211
+ * ### Возвращаемое значение
1212
+ *
1213
+ * Возвращает `true`, если значение является символом, иначе `false`.
1214
+ *
1215
+ * ### Примеры использования
1216
+ *
1217
+ * ```js
1218
+ * // Пример 1: Проверка символов
1219
+ * Type.isSymbol(Symbol('symbol')); // true
1220
+ * Type.isSymbol(Symbol.iterator); // true
1221
+ *
1222
+ * // Пример 2: Проверка значений других типов
1223
+ * Type.isSymbol('hello'); // false (строка)
1224
+ * Type.isSymbol(42); // false (число)
1225
+ * Type.isSymbol(true); // false (логическое значение)
1226
+ * Type.isSymbol(null); // false
1227
+ * Type.isSymbol(undefined); // false
1228
+ * Type.isSymbol({}); // false (объект)
1229
+ * Type.isSymbol([]); // false (массив)
1230
+ * Type.isSymbol(() => {}); // false (функция)
1231
+ * ```
1232
+ *
1233
+ * @param {any} value Проверяемая переменная.
1234
+ * @returns {boolean} Возвращает `true`, если значение является символом, иначе `false`.
1235
+ */
1236
+ static isSymbol(value) {
1237
+ return is_symbol(value);
1238
+ }
1239
+
1240
+ /**
1241
+ * Проверяет, является ли значение `undefined`.
1242
+ *
1243
+ * ### Параметры
1244
+ *
1245
+ * - `value` (any)
1246
+ * Проверяемая переменная.
1247
+ *
1248
+ * ### Описание
1249
+ *
1250
+ * Метод `Type.isUndefined` проверяет, является ли переданное значение `undefined`.
1251
+ *
1252
+ * Он использует оператор `typeof` для проверки типа значения.
1253
+ *
1254
+ * Метод возвращает `false` для всех значений, не принадлежащих типу `undefined`.
1255
+ *
1256
+ * ### Возвращаемое значение
1257
+ *
1258
+ * Возвращает `true`, если значение является `undefined`, иначе `false`.
1259
+ *
1260
+ * ### Примеры использования
1261
+ *
1262
+ * ```js
1263
+ * // Пример 1: Проверка значения undefined
1264
+ * Type.isUndefined(undefined); // true
1265
+ *
1266
+ * // Пример 2: Проверка значений других типов
1267
+ * Type.isUndefined(null); // false
1268
+ * Type.isUndefined(42); // false (число)
1269
+ * Type.isUndefined('hello'); // false (строка)
1270
+ * Type.isUndefined(true); // false (логическое значение)
1271
+ * Type.isUndefined({}); // false (объект)
1272
+ * Type.isUndefined([]); // false (массив)
1273
+ * Type.isUndefined(() => {}); // false (функция)
1274
+ * ```
1275
+ *
1276
+ * @param {any} value Проверяемая переменная.
1277
+ * @returns {boolean} Возвращает `true`, если значение является `undefined`, иначе `false`.
1278
+ */
1279
+ static isUndefined(value) {
1280
+ return is_undefined(value);
1281
+ }
1282
+ }
1283
+
1284
+ export default Type;
1285
+