@joookiwi/type 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/README.md +107 -0
  2. package/dist/boolean (false).d.ts +28 -0
  3. package/dist/boolean (false).d.ts.map +1 -0
  4. package/dist/boolean (true).d.ts +29 -0
  5. package/dist/boolean (true).d.ts.map +1 -0
  6. package/dist/boolean.d.ts +42 -0
  7. package/dist/boolean.d.ts.map +1 -0
  8. package/dist/empty.d.ts +51 -0
  9. package/dist/empty.d.ts.map +1 -0
  10. package/dist/index.d.ts +23 -0
  11. package/dist/index.d.ts.map +1 -0
  12. package/dist/mixed.d.ts +594 -0
  13. package/dist/mixed.d.ts.map +1 -0
  14. package/dist/nullable.d.ts +769 -0
  15. package/dist/nullable.d.ts.map +1 -0
  16. package/dist/numeric (-1).d.ts +86 -0
  17. package/dist/numeric (-1).d.ts.map +1 -0
  18. package/dist/numeric (0).d.ts +88 -0
  19. package/dist/numeric (0).d.ts.map +1 -0
  20. package/dist/numeric (1).d.ts +88 -0
  21. package/dist/numeric (1).d.ts.map +1 -0
  22. package/dist/numeric (2).d.ts +84 -0
  23. package/dist/numeric (2).d.ts.map +1 -0
  24. package/dist/numeric (bigint).d.ts +41 -0
  25. package/dist/numeric (bigint).d.ts.map +1 -0
  26. package/dist/numeric (number).d.ts +42 -0
  27. package/dist/numeric (number).d.ts.map +1 -0
  28. package/dist/numeric.d.ts +51 -0
  29. package/dist/numeric.d.ts.map +1 -0
  30. package/dist/string (individual).d.ts +33 -0
  31. package/dist/string (individual).d.ts.map +1 -0
  32. package/dist/string.d.ts +43 -0
  33. package/dist/string.d.ts.map +1 -0
  34. package/dist/symbol.d.ts +38 -0
  35. package/dist/symbol.d.ts.map +1 -0
  36. package/package.json +65 -0
  37. package/src/boolean (false).ts +30 -0
  38. package/src/boolean (true).ts +31 -0
  39. package/src/boolean.ts +45 -0
  40. package/src/empty.ts +57 -0
  41. package/src/index.ts +23 -0
  42. package/src/mixed.ts +642 -0
  43. package/src/nullable.ts +837 -0
  44. package/src/numeric (-1).ts +88 -0
  45. package/src/numeric (0).ts +90 -0
  46. package/src/numeric (1).ts +90 -0
  47. package/src/numeric (2).ts +86 -0
  48. package/src/numeric (bigint).ts +44 -0
  49. package/src/numeric (number).ts +45 -0
  50. package/src/numeric.ts +55 -0
  51. package/src/string (individual).ts +35 -0
  52. package/src/string.ts +59 -0
  53. package/src/symbol.ts +40 -0
@@ -0,0 +1,837 @@
1
+ /*******************************************************************************
2
+ Copyright (c) 2023-2024. Jonathan Bédard ~ JóôòKiwi
3
+
4
+ This project is free to use.
5
+ All the right is reserved to the author of this project.
6
+ ******************************************************************************/
7
+
8
+ import type {Numeric} from "./numeric"
9
+ import type {Zero, ZeroBigInt, ZeroNumber} from "./numeric (0)"
10
+ import type {One, OneBigInt, OneNumber} from "./numeric (1)"
11
+ import type {Two, TwoBigInt, TwoNumber} from "./numeric (2)"
12
+ import type {MinusOne, MinusOneBigInt, MinusOneNumber} from "./numeric (-1)"
13
+ import type {JavascriptSymbol, TypescriptSymbol} from "./symbol"
14
+
15
+ //#region -------------------- null/undefined --------------------
16
+
17
+ /** A type-alias for <b>null</b> or <b>undefined</b> */
18
+ export type NullOrUndefined = | null | undefined
19
+
20
+ /**
21
+ * A type-alias for <b>null</b> in a {@link String} template
22
+ *
23
+ * @see Template
24
+ * @see NullableTemplate
25
+ */
26
+ export type NullTemplate<T extends null = null, > = `${T}`
27
+ /**
28
+ * A type-alias for <b>undefined</b> in a {@link String} template
29
+ *
30
+ * @see Template
31
+ * @see NullableTemplate
32
+ */
33
+ export type UndefinedTemplate<T extends undefined = undefined, > = `${T}`
34
+ /**
35
+ * A type-alias for <b>null</b> or <b>undefined</b> in a {@link String} template
36
+ *
37
+ * @see Template
38
+ * @see NullTemplate
39
+ * @see UndefinedTemplate
40
+ */
41
+ export type NullableTemplate<T extends NullOrUndefined = NullOrUndefined, > = `${T}`
42
+
43
+ //#endregion -------------------- null/undefined --------------------
44
+ //#region -------------------- value --------------------
45
+
46
+ /**
47
+ * A type-alias of a value or <b>null</b>
48
+ *
49
+ * @see Nullable
50
+ */
51
+ export type NullOr<T, > = | T | null
52
+ /**
53
+ * A type-alias of a value or <b>undefined</b>
54
+ *
55
+ * @see Nullable
56
+ */
57
+ export type UndefinedOr<T, > = | T | undefined
58
+ /**
59
+ * A type-alias of a value, <b>null</b> or <b>undefined</b>
60
+ *
61
+ * @see NullOr
62
+ * @see UndefinedOr
63
+ */
64
+ export type Nullable<T, > = | T | null | undefined
65
+
66
+ //#endregion -------------------- value --------------------
67
+ //#region -------------------- boolean --------------------
68
+
69
+ /**
70
+ * A type-alias for a {@link Boolean} or <b>undefined</b>
71
+ *
72
+ * @see UndefinedOr
73
+ * @see UndefinedOrTrue
74
+ * @see UndefinedOrFalse
75
+ * @see NullableBoolean
76
+ */
77
+ export type UndefinedOrBoolean<T extends boolean = boolean, > = | T | undefined
78
+ /**
79
+ * A type-alias for a {@link Boolean} or <b>null</b>
80
+ *
81
+ * @see NullOr
82
+ * @see NullOrTrue
83
+ * @see NullOrFalse
84
+ * @see NullableBoolean
85
+ */
86
+ export type NullOrBoolean<T extends boolean = boolean, > = | T | null
87
+ /**
88
+ * A type-alias for a {@link Boolean}, <b>null</b> or <b>undefined</b>
89
+ *
90
+ * @see Nullable
91
+ * @see NullableTrue
92
+ * @see NullableFalse
93
+ * @see UndefinedOrBoolean
94
+ * @see NullOrBoolean
95
+ */
96
+ export type NullableBoolean<T extends boolean = boolean, > = | T | null | undefined
97
+
98
+ //#endregion -------------------- boolean --------------------
99
+ //#region -------------------- true --------------------
100
+
101
+ /**
102
+ * A type-alias for as <b>true</b> or <b>undefined</b>
103
+ *
104
+ * @see UndefinedOr
105
+ * @see UndefinedOrBoolean
106
+ * @see NullableTrue
107
+ */
108
+ export type UndefinedOrTrue<T extends true = true, > = | T | undefined
109
+ /**
110
+ * A type-alias for <b>true</b> or <b>null</b>
111
+ *
112
+ * @see NullOr
113
+ * @see NullOrBoolean
114
+ * @see NullableTrue
115
+ */
116
+ export type NullOrTrue<T extends true = true, > = | T | null
117
+ /**
118
+ * A type-alias for <b>true</b>, <b>null</b> or <b>undefined</b>
119
+ *
120
+ * @see Nullable
121
+ * @see NullableBoolean
122
+ * @see UndefinedOrTrue
123
+ * @see NullOrTrue
124
+ */
125
+ export type NullableTrue<T extends true = true, > = | T | null | undefined
126
+
127
+ //#endregion -------------------- true --------------------
128
+ //#region -------------------- false --------------------
129
+
130
+ /**
131
+ * A type-alias for <b>false</b> or <b>undefined</b>
132
+ *
133
+ * @see UndefinedOr
134
+ * @see UndefinedOrBoolean
135
+ * @see NullableFalse
136
+ */
137
+ export type UndefinedOrFalse<T extends false = false, > = | T | undefined
138
+ /**
139
+ * A type-alias for <b>false</b> or <b>null</b>
140
+ *
141
+ * @see NullOr
142
+ * @see NullOrBoolean
143
+ * @see NullableFalse
144
+ */
145
+ export type NullOrFalse<T extends false = false, > = | T | null
146
+ /**
147
+ * A type-alias for <b>false</b>, <b>null</b> or <b>undefined</b>
148
+ *
149
+ * @see Nullable
150
+ * @see NullableBoolean
151
+ * @see UndefinedOrFalse
152
+ * @see NullOrFalse
153
+ */
154
+ export type NullableFalse<T extends false = false, > = | T | null | undefined
155
+
156
+ //#endregion -------------------- false --------------------
157
+ //#region -------------------- string --------------------
158
+
159
+ /**
160
+ * A type-alias for a {@link String} or <b>undefined</b>
161
+ *
162
+ * @see UndefinedOr
163
+ * @see NullableString
164
+ */
165
+ export type UndefinedOrString<T extends string = string, > = | T | undefined
166
+ /**
167
+ * A type-alias for a {@link String} or <b>null</b>
168
+ *
169
+ * @see NullOr
170
+ * @see NullableString
171
+ */
172
+ export type NullOrString<T extends string = string, > = | T | null
173
+ /**
174
+ * A type-alias for a {@link String}, <b>null</b> or <b>undefined</b>
175
+ *
176
+ * @see Nullable
177
+ * @see UndefinedOrString
178
+ * @see NullOrString
179
+ */
180
+ export type NullableString<T extends string = string, > = | T | null | undefined
181
+
182
+ //#endregion -------------------- string --------------------
183
+ //#region -------------------- number --------------------
184
+
185
+ /**
186
+ * A type-alias of a {@link Number} or <b>undefined</b>
187
+ *
188
+ * @see UndefinedOr
189
+ * @see UndefinedOrNumeric
190
+ * @see NullableNumber
191
+ */
192
+ export type UndefinedOrNumber<T extends number = number, > = | T | undefined
193
+ /**
194
+ * A type-alias of a {@link Number} or <b>null</b>
195
+ *
196
+ * @see NullOr
197
+ * @see NullOrNumeric
198
+ * @see NullableNumber
199
+ */
200
+ export type NullOrNumber<T extends number = number, > = | T | null
201
+ /**
202
+ * A type-alias of a {@link Number}, <b>null</b> or <b>undefined</b>
203
+ *
204
+ * @see Nullable
205
+ * @see NullableNumeric
206
+ * @see UndefinedOrNumber
207
+ * @see NullOrNumber
208
+ */
209
+ export type NullableNumber<T extends number = number, > = | T | null | undefined
210
+
211
+ //#endregion -------------------- number --------------------
212
+ //#region -------------------- bigint --------------------
213
+
214
+ /**
215
+ * A type-alias of a {@link BigInt} or <b>undefined</b>
216
+ *
217
+ * @see UndefinedOr
218
+ * @see UndefinedOrNumeric
219
+ * @see NullableBigInt
220
+ */
221
+ export type UndefinedOrBigInt<T extends bigint = bigint, > = | T | undefined
222
+ /**
223
+ * A type-alias of a {@link BigInt} or <b>null</b>
224
+ *
225
+ * @see NullOr
226
+ * @see NullOrNumeric
227
+ * @see NullableBigInt
228
+ */
229
+ export type NullOrBigInt<T extends bigint = bigint, > = | T | null
230
+ /**
231
+ * A type-alias of a {@link BigInt}, <b>null</b> or <b>undefined</b>
232
+ *
233
+ * @see Nullable
234
+ * @see NullableNumeric
235
+ * @see UndefinedOrBigInt
236
+ * @see NullOrBigInt
237
+ */
238
+ export type NullableBigInt<T extends bigint = bigint, > = | T | null | undefined
239
+
240
+ //#endregion -------------------- bigint --------------------
241
+ //#region -------------------- numeric --------------------
242
+
243
+ /**
244
+ * A type-alias of a value (as a {@link Number} or {@link BigInt}) or <b>undefined</b>
245
+ *
246
+ * @see UndefinedOr
247
+ * @see UndefinedOrNumber
248
+ * @see UndefinedOrBigInt
249
+ * @see NullableNumeric
250
+ */
251
+ export type UndefinedOrNumeric<T extends Numeric = Numeric, > = | T | undefined
252
+ /**
253
+ * A type-alias of a value (as a {@link Number} or {@link BigInt}) or <b>null</b>
254
+ *
255
+ * @see NullOr
256
+ * @see NullOrNumber
257
+ * @see NullOrBigInt
258
+ * @see NullableNumeric
259
+ */
260
+ export type NullOrNumeric<T extends Numeric = Numeric, > = | T | null
261
+ /**
262
+ * A type-alias of a value (as a {@link Number} or {@link BigInt}), <b>null</b> or <b>undefined</b>
263
+ *
264
+ * @see Nullable
265
+ * @see NullableNumber
266
+ * @see NullableBigInt
267
+ * @see UndefinedOrNumeric
268
+ * @see NullOrNumeric
269
+ */
270
+ export type NullableNumeric<T extends Numeric = Numeric, > = | T | null | undefined
271
+
272
+ //#endregion -------------------- numeric --------------------
273
+ //#region -------------------- -1 --------------------
274
+
275
+ /**
276
+ * A type-alias of the value <b>-1</b> (as a {@link Number} or {@link BigInt})
277
+ * or <b>undefined</b>
278
+ *
279
+ * @see UndefinedOr
280
+ * @see UndefinedOrNumeric
281
+ * @see UndefinedOrMinusOneNumber
282
+ * @see UndefinedOrMinusOneBigInt
283
+ * @see NullableMinusOne
284
+ */
285
+ export type UndefinedOrMinusOne<T extends MinusOne = MinusOne, > = | T | undefined
286
+ /**
287
+ * A type-alias of the {@link Number} <b>-1</b>
288
+ * or <b>undefined</b>
289
+ *
290
+ * @see UndefinedOr
291
+ * @see UndefinedOrNumeric
292
+ * @see UndefinedOrNumber
293
+ * @see UndefinedOrMinusOne
294
+ * @see NullableMinusOne
295
+ * @see NullableMinusOneNumber
296
+ */
297
+ export type UndefinedOrMinusOneNumber<T extends MinusOneNumber = MinusOneNumber, > = | T | undefined
298
+ /**
299
+ * A type-alias of the {@link BigInt} <b>-1</b>
300
+ * or <b>undefined</b>
301
+ *
302
+ * @see UndefinedOr
303
+ * @see UndefinedOrNumeric
304
+ * @see UndefinedOrBigInt
305
+ * @see UndefinedOrMinusOne
306
+ * @see NullableMinusOne
307
+ * @see NullableMinusOneBigInt
308
+ */
309
+ export type UndefinedOrMinusOneBigInt<T extends MinusOneBigInt = MinusOneBigInt, > = | T | undefined
310
+
311
+ /**
312
+ * A type-alias of a value (as a {@link Number} or {@link BigInt})
313
+ * or <b>null</b>
314
+ *
315
+ * @see NullOr
316
+ * @see NullOrNumeric
317
+ * @see NullOrMinusOneNumber
318
+ * @see NullOrMinusOneBigInt
319
+ * @see NullableMinusOne
320
+ */
321
+ export type NullOrMinusOne<T extends MinusOne = MinusOne, > = | T | null
322
+ /**
323
+ * A type-alias of the {@link Number} <b>-1</b>
324
+ * or <b>null</b>
325
+ *
326
+ * @see NullOr
327
+ * @see NullOrNumeric
328
+ * @see NullOrNumber
329
+ * @see NullOrMinusOne
330
+ * @see NullableMinusOne
331
+ * @see NullableMinusOneNumber
332
+ */
333
+ export type NullOrMinusOneNumber<T extends MinusOneNumber = MinusOneNumber, > = | T | null
334
+ /**
335
+ * A type-alias of the {@link BigInt} <b>-1</b>
336
+ * or <b>null</b>
337
+ *
338
+ * @see NullOr
339
+ * @see NullOrNumeric
340
+ * @see NullOrBigInt
341
+ * @see NullOrMinusOne
342
+ * @see NullableMinusOne
343
+ * @see NullableMinusOneBigInt
344
+ */
345
+ export type NullOrMinusOneBigInt<T extends MinusOneBigInt = MinusOneBigInt, > = | T | null
346
+
347
+ /**
348
+ * A type-alias of the value <b>-1</b> (as a {@link Number} or {@link BigInt}),
349
+ * <b>null</b> or <b>undefined</b>
350
+ *
351
+ * @see Nullable
352
+ * @see NullableNumeric
353
+ * @see NullableMinusOneNumber
354
+ * @see NullableMinusOneBigInt
355
+ * @see UndefinedOrMinusOne
356
+ * @see NullOrMinusOne
357
+ */
358
+ export type NullableMinusOne<T extends MinusOne = MinusOne, > = | T | null | undefined
359
+ /**
360
+ * A type-alias of the {@link Number} <b>-1</b>,
361
+ * <b>null</b> or <b>undefined</b>
362
+ *
363
+ * @see Nullable
364
+ * @see NullableNumeric
365
+ * @see NullableNumber
366
+ * @see NullableMinusOne
367
+ * @see UndefinedOrMinusOne
368
+ * @see UndefinedOrMinusOneNumber
369
+ * @see NullOrMinusOne
370
+ * @see NullOrMinusOneNumber
371
+ */
372
+ export type NullableMinusOneNumber<T extends MinusOneNumber = MinusOneNumber, > = | T | null | undefined
373
+ /**
374
+ * A type-alias of the {@link BigInt} <b>-1</b>,
375
+ * <b>null</b> or <b>undefined</b>
376
+ *
377
+ * @see Nullable
378
+ * @see NullableNumeric
379
+ * @see NullableBigInt
380
+ * @see NullableMinusOne
381
+ * @see UndefinedOrMinusOne
382
+ * @see UndefinedOrMinusOneBigInt
383
+ * @see NullOrMinusOne
384
+ * @see NullOrMinusOneBigInt
385
+ */
386
+ export type NullableMinusOneBigInt<T extends MinusOneBigInt = MinusOneBigInt, > = | T | null | undefined
387
+
388
+ //#endregion -------------------- -1 --------------------
389
+ //#region -------------------- 0 --------------------
390
+
391
+ /**
392
+ * A type-alias of the value <b>0</b> (as a {@link Number} or {@link BigInt})
393
+ * or <b>undefined</b>
394
+ *
395
+ * @see UndefinedOr
396
+ * @see UndefinedOrNumeric
397
+ * @see UndefinedOrZeroNumber
398
+ * @see UndefinedOrZeroBigInt
399
+ * @see NullableZero
400
+ */
401
+ export type UndefinedOrZero<T extends Zero = Zero, > = | T | undefined
402
+ /**
403
+ * A type-alias of the {@link Number} <b>0</b>
404
+ * or <b>undefined</b>
405
+ *
406
+ * @see UndefinedOr
407
+ * @see UndefinedOrNumeric
408
+ * @see UndefinedOrNumber
409
+ * @see UndefinedOrZero
410
+ * @see NullableZero
411
+ * @see NullableZeroNumber
412
+ */
413
+ export type UndefinedOrZeroNumber<T extends ZeroNumber = ZeroNumber, > = | T | undefined
414
+ /**
415
+ * A type-alias of the {@link BigInt} <b>0</b>
416
+ * or <b>undefined</b>
417
+ *
418
+ * @see UndefinedOr
419
+ * @see UndefinedOrNumeric
420
+ * @see UndefinedOrBigInt
421
+ * @see UndefinedOrZero
422
+ * @see NullableZero
423
+ * @see NullableZeroBigInt
424
+ */
425
+ export type UndefinedOrZeroBigInt<T extends ZeroBigInt = ZeroBigInt, > = | T | undefined
426
+
427
+ /**
428
+ * A type-alias of a value (as a {@link Number} or {@link BigInt})
429
+ * or <b>null</b>
430
+ *
431
+ * @see NullOr
432
+ * @see NullOrNumeric
433
+ * @see NullOrZeroNumber
434
+ * @see NullOrZeroBigInt
435
+ * @see NullableZero
436
+ */
437
+ export type NullOrZero<T extends Zero = Zero, > = | T | null
438
+ /**
439
+ * A type-alias of the {@link Number} <b>0</b>
440
+ * or <b>null</b>
441
+ *
442
+ * @see NullOr
443
+ * @see NullOrNumeric
444
+ * @see NullOrNumber
445
+ * @see NullOrZero
446
+ * @see NullableZero
447
+ * @see NullableZeroNumber
448
+ */
449
+ export type NullOrZeroNumber<T extends ZeroNumber = ZeroNumber, > = | T | null
450
+ /**
451
+ * A type-alias of the {@link BigInt} <b>0</b>
452
+ * or <b>null</b>
453
+ *
454
+ * @see NullOr
455
+ * @see NullOrNumeric
456
+ * @see NullOrBigInt
457
+ * @see NullOrZero
458
+ * @see NullableZero
459
+ * @see NullableZeroBigInt
460
+ */
461
+ export type NullOrZeroBigInt<T extends ZeroBigInt = ZeroBigInt, > = | T | null
462
+
463
+ /**
464
+ * A type-alias of the value <b>0</b> (as a {@link Number} or {@link BigInt}),
465
+ * <b>null</b> or <b>undefined</b>
466
+ *
467
+ * @see Nullable
468
+ * @see NullableNumeric
469
+ * @see NullableZeroNumber
470
+ * @see NullableZeroBigInt
471
+ * @see UndefinedOrZero
472
+ * @see NullOrZero
473
+ */
474
+ export type NullableZero<T extends Zero = Zero, > = | T | null | undefined
475
+ /**
476
+ * A type-alias of the {@link Number} <b>0</b>,
477
+ * <b>null</b> or <b>undefined</b>
478
+ *
479
+ * @see Nullable
480
+ * @see NullableNumeric
481
+ * @see NullableNumber
482
+ * @see NullableZero
483
+ * @see UndefinedOrZero
484
+ * @see UndefinedOrZeroNumber
485
+ * @see NullOrZero
486
+ * @see NullOrZeroNumber
487
+ */
488
+ export type NullableZeroNumber<T extends ZeroNumber = ZeroNumber, > = | T | null | undefined
489
+ /**
490
+ * A type-alias of the {@link BigInt} <b>0</b>,
491
+ * <b>null</b> or <b>undefined</b>
492
+ *
493
+ * @see Nullable
494
+ * @see NullableNumeric
495
+ * @see NullableBigInt
496
+ * @see NullableZero
497
+ * @see UndefinedOrZero
498
+ * @see UndefinedOrZeroBigInt
499
+ * @see NullOrZero
500
+ * @see NullOrZeroBigInt
501
+ */
502
+ export type NullableZeroBigInt<T extends ZeroBigInt = ZeroBigInt, > = | T | null | undefined
503
+
504
+ //#endregion -------------------- 0 --------------------
505
+ //#region -------------------- 1 --------------------
506
+
507
+ /**
508
+ * A type-alias of the value <b>1</b> (as a {@link Number} or {@link BigInt})
509
+ * or <b>undefined</b>
510
+ *
511
+ * @see UndefinedOr
512
+ * @see UndefinedOrNumeric
513
+ * @see UndefinedOrOneNumber
514
+ * @see UndefinedOrOneBigInt
515
+ * @see NullableOne
516
+ */
517
+ export type UndefinedOrOne<T extends One = One, > = | T | undefined
518
+ /**
519
+ * A type-alias of the {@link Number} <b>1</b>
520
+ * or <b>undefined</b>
521
+ *
522
+ * @see UndefinedOr
523
+ * @see UndefinedOrNumeric
524
+ * @see UndefinedOrNumber
525
+ * @see UndefinedOrOne
526
+ * @see NullableOne
527
+ * @see NullableOneNumber
528
+ */
529
+ export type UndefinedOrOneNumber<T extends OneNumber = OneNumber, > = | T | undefined
530
+ /**
531
+ * A type-alias of the {@link BigInt} <b>1</b>
532
+ * or <b>undefined</b>
533
+ *
534
+ * @see UndefinedOr
535
+ * @see UndefinedOrNumeric
536
+ * @see UndefinedOrBigInt
537
+ * @see UndefinedOrOne
538
+ * @see NullableOne
539
+ * @see NullableOneBigInt
540
+ */
541
+ export type UndefinedOrOneBigInt<T extends OneBigInt = OneBigInt, > = | T | undefined
542
+
543
+ /**
544
+ * A type-alias of a value (as a {@link Number} or {@link BigInt})
545
+ * or <b>null</b>
546
+ *
547
+ * @see NullOr
548
+ * @see NullOrNumeric
549
+ * @see NullOrOneNumber
550
+ * @see NullOrOneBigInt
551
+ * @see NullableOne
552
+ */
553
+ export type NullOrOne<T extends One = One, > = | T | null
554
+ /**
555
+ * A type-alias of the {@link Number} <b>1</b>
556
+ * or <b>null</b>
557
+ *
558
+ * @see NullOr
559
+ * @see NullOrNumeric
560
+ * @see NullOrNumber
561
+ * @see NullOrOne
562
+ * @see NullableOne
563
+ * @see NullableOneNumber
564
+ */
565
+ export type NullOrOneNumber<T extends OneNumber = OneNumber, > = | T | null
566
+ /**
567
+ * A type-alias of the {@link BigInt} <b>1</b>
568
+ * or <b>null</b>
569
+ *
570
+ * @see NullOr
571
+ * @see NullOrNumeric
572
+ * @see NullOrBigInt
573
+ * @see NullOrOne
574
+ * @see NullableOne
575
+ * @see NullableOneBigInt
576
+ */
577
+ export type NullOrOneBigInt<T extends OneBigInt = OneBigInt, > = | T | null
578
+
579
+ /**
580
+ * A type-alias of the value <b>1</b> (as a {@link Number} or {@link BigInt}),
581
+ * <b>null</b> or <b>undefined</b>
582
+ *
583
+ * @see Nullable
584
+ * @see NullableNumeric
585
+ * @see NullableOneNumber
586
+ * @see NullableOneBigInt
587
+ * @see UndefinedOrOne
588
+ * @see NullOrOne
589
+ */
590
+ export type NullableOne<T extends One = One, > = | T | null | undefined
591
+ /**
592
+ * A type-alias of the {@link Number} <b>1</b>,
593
+ * <b>null</b> or <b>undefined</b>
594
+ *
595
+ * @see Nullable
596
+ * @see NullableNumeric
597
+ * @see NullableNumber
598
+ * @see NullableOne
599
+ * @see UndefinedOrOne
600
+ * @see UndefinedOrOneNumber
601
+ * @see NullOrOne
602
+ * @see NullOrOneNumber
603
+ */
604
+ export type NullableOneNumber<T extends OneNumber = OneNumber, > = | T | null | undefined
605
+ /**
606
+ * A type-alias of the {@link BigInt} <b>1</b>,
607
+ * <b>null</b> or <b>undefined</b>
608
+ *
609
+ * @see Nullable
610
+ * @see NullableNumeric
611
+ * @see NullableBigInt
612
+ * @see NullableOne
613
+ * @see UndefinedOrOne
614
+ * @see UndefinedOrOneBigInt
615
+ * @see NullOrOne
616
+ * @see NullOrOneBigInt
617
+ */
618
+ export type NullableOneBigInt<T extends OneBigInt = OneBigInt, > = | T | null | undefined
619
+
620
+ //#endregion -------------------- 1 --------------------
621
+ //#region -------------------- 2 --------------------
622
+
623
+ /**
624
+ * A type-alias of the value <b>2</b> (as a {@link Number} or {@link BigInt})
625
+ * or <b>undefined</b>
626
+ *
627
+ * @see UndefinedOr
628
+ * @see UndefinedOrNumeric
629
+ * @see UndefinedOrTwoNumber
630
+ * @see UndefinedOrTwoBigInt
631
+ * @see NullableTwo
632
+ */
633
+ export type UndefinedOrTwo<T extends Two = Two, > = | T | undefined
634
+ /**
635
+ * A type-alias of the {@link Number} <b>2</b>
636
+ * or <b>undefined</b>
637
+ *
638
+ * @see UndefinedOr
639
+ * @see UndefinedOrNumeric
640
+ * @see UndefinedOrNumber
641
+ * @see UndefinedOrTwo
642
+ * @see NullableTwo
643
+ * @see NullableTwoNumber
644
+ */
645
+ export type UndefinedOrTwoNumber<T extends TwoNumber = TwoNumber, > = | T | undefined
646
+ /**
647
+ * A type-alias of the {@link BigInt} <b>2</b>
648
+ * or <b>undefined</b>
649
+ *
650
+ * @see UndefinedOr
651
+ * @see UndefinedOrNumeric
652
+ * @see UndefinedOrBigInt
653
+ * @see UndefinedOrTwo
654
+ * @see NullableTwo
655
+ * @see NullableTwoBigInt
656
+ */
657
+ export type UndefinedOrTwoBigInt<T extends TwoBigInt = TwoBigInt, > = | T | undefined
658
+
659
+ /**
660
+ * A type-alias of a value (as a {@link Number} or {@link BigInt})
661
+ * or <b>null</b>
662
+ *
663
+ * @see NullOr
664
+ * @see NullOrNumeric
665
+ * @see NullOrTwoNumber
666
+ * @see NullOrTwoBigInt
667
+ * @see NullableTwo
668
+ */
669
+ export type NullOrTwo<T extends Two = Two, > = | T | null
670
+ /**
671
+ * A type-alias of the {@link Number} <b>2</b>
672
+ * or <b>null</b>
673
+ *
674
+ * @see NullOr
675
+ * @see NullOrNumeric
676
+ * @see NullOrNumber
677
+ * @see NullOrTwo
678
+ * @see NullableTwo
679
+ * @see NullableTwoNumber
680
+ */
681
+ export type NullOrTwoNumber<T extends TwoNumber = TwoNumber, > = | T | null
682
+ /**
683
+ * A type-alias of the {@link BigInt} <b>2</b>
684
+ * or <b>null</b>
685
+ *
686
+ * @see NullOr
687
+ * @see NullOrNumeric
688
+ * @see NullOrBigInt
689
+ * @see NullOrTwo
690
+ * @see NullableTwo
691
+ * @see NullableTwoBigInt
692
+ */
693
+ export type NullOrTwoBigInt<T extends TwoBigInt = TwoBigInt, > = | T | null
694
+
695
+ /**
696
+ * A type-alias of the value <b>2</b> (as a {@link Number} or {@link BigInt}),
697
+ * <b>null</b> or <b>undefined</b>
698
+ *
699
+ * @see Nullable
700
+ * @see NullableNumeric
701
+ * @see NullableTwoNumber
702
+ * @see NullableTwoBigInt
703
+ * @see UndefinedOrTwo
704
+ * @see NullOrTwo
705
+ */
706
+ export type NullableTwo<T extends Two = Two, > = | T | null | undefined
707
+ /**
708
+ * A type-alias of the {@link Number} <b>2</b>,
709
+ * <b>null</b> or <b>undefined</b>
710
+ *
711
+ * @see Nullable
712
+ * @see NullableNumeric
713
+ * @see NullableNumber
714
+ * @see NullableTwo
715
+ * @see UndefinedOrTwo
716
+ * @see UndefinedOrTwoNumber
717
+ * @see NullOrTwo
718
+ * @see NullOrTwoNumber
719
+ */
720
+ export type NullableTwoNumber<T extends TwoNumber = TwoNumber, > = | T | null | undefined
721
+ /**
722
+ * A type-alias of the {@link BigInt} <b>2</b>,
723
+ * <b>null</b> or <b>undefined</b>
724
+ *
725
+ * @see Nullable
726
+ * @see NullableNumeric
727
+ * @see NullableBigInt
728
+ * @see NullableTwo
729
+ * @see UndefinedOrTwo
730
+ * @see UndefinedOrTwoBigInt
731
+ * @see NullOrTwo
732
+ * @see NullOrTwoBigInt
733
+ */
734
+ export type NullableTwoBigInt<T extends TwoBigInt = TwoBigInt, > = | T | null | undefined
735
+
736
+ //#endregion -------------------- 2 --------------------
737
+ //#region -------------------- symbol --------------------
738
+
739
+ /**
740
+ * A type-alias for a {@link Symbol}
741
+ * or <b>undefined</b>
742
+ *
743
+ * @see UndefinedOr
744
+ * @see UndefinedOrJavascriptSymbol
745
+ * @see UndefinedOrTypescriptSymbol
746
+ * @see NullableSymbol
747
+ */
748
+ export type UndefinedOrSymbol<T extends symbol = symbol, > = | T | undefined
749
+ /**
750
+ * A type-alias for an official Javascript {@link Symbol}
751
+ * or <b>undefined</b>
752
+ *
753
+ * @see UndefinedOr
754
+ * @see UndefinedOrSymbol
755
+ * @see JavascriptSymbol
756
+ * @see NullableSymbol
757
+ */
758
+ export type UndefinedOrJavascriptSymbol<T extends JavascriptSymbol = JavascriptSymbol, > = | T | undefined
759
+ /**
760
+ * A type-alias for an official Typescript {@link Symbol}
761
+ * or <b>undefined</b>
762
+ *
763
+ * @see UndefinedOr
764
+ * @see UndefinedOrSymbol
765
+ * @see TypescriptSymbol
766
+ * @see NullableSymbol
767
+ */
768
+ export type UndefinedOrTypescriptSymbol<T extends TypescriptSymbol = TypescriptSymbol, > = | T | undefined
769
+
770
+ /**
771
+ * A type-alias for a {@link Symbol}
772
+ * or <b>null</b>
773
+ *
774
+ * @see NullOr
775
+ * @see NullOrJavascriptSymbol
776
+ * @see NullOrTypescriptSymbol
777
+ * @see NullableSymbol
778
+ */
779
+ export type NullOrSymbol<T extends symbol = symbol, > = | T | null
780
+ /**
781
+ * A type-alias for an official Javascript {@link Symbol}
782
+ * or <b>null</b>
783
+ *
784
+ * @see NullOr
785
+ * @see NullOrSymbol
786
+ * @see JavascriptSymbol
787
+ * @see NullableSymbol
788
+ */
789
+ export type NullOrJavascriptSymbol<T extends JavascriptSymbol = JavascriptSymbol, > = | T | null
790
+ /**
791
+ * A type-alias for an official Typescript {@link Symbol}
792
+ * or <b>null</b>
793
+ *
794
+ * @see NullOr
795
+ * @see NullOrSymbol
796
+ * @see TypescriptSymbol
797
+ * @see NullableSymbol
798
+ */
799
+ export type NullOrTypescriptSymbol<T extends TypescriptSymbol = TypescriptSymbol, > = | T | undefined
800
+
801
+ /**
802
+ * A type-alias for a {@link Symbol},
803
+ * <b>null</b> or <b>undefined</b>
804
+ *
805
+ * @see Nullable
806
+ * @see NullableJavascriptSymbol
807
+ * @see NullableTypescriptSymbol
808
+ * @see UndefinedOrSymbol
809
+ * @see NullOrSymbol
810
+ */
811
+ export type NullableSymbol<T extends symbol = symbol, > = | T | null | undefined
812
+ /**
813
+ * A type-alias for an official Javascript {@link Symbol},
814
+ * <b>null</b> or <b>undefined</b>
815
+ *
816
+ * @see Nullable
817
+ * @see JavascriptSymbol
818
+ * @see UndefinedOrSymbol
819
+ * @see UndefinedOrJavascriptSymbol
820
+ * @see NullOrSymbol
821
+ * @see NullOrJavascriptSymbol
822
+ */
823
+ export type NullableJavascriptSymbol<T extends JavascriptSymbol = JavascriptSymbol, > = | T | null | undefined
824
+ /**
825
+ * A type-alias for an official Typescript {@link Symbol}
826
+ * <b>null</b> or <b>undefined</b>
827
+ *
828
+ * @see Nullable
829
+ * @see TypescriptSymbol
830
+ * @see UndefinedOrSymbol
831
+ * @see UndefinedOrTypescriptSymbol
832
+ * @see NullOrSymbol
833
+ * @see NullOrTypescriptSymbol
834
+ */
835
+ export type NullableTypescriptSymbol<T extends TypescriptSymbol = TypescriptSymbol, > = | T | undefined
836
+
837
+ //#endregion -------------------- symbol --------------------