UNPKG

2.17 kBJavaScriptView Raw
1"use strict";
2/**
3 * Optional 对象
4 */
5var Optional = /** @class */ (function () {
6 /**
7 * 构造函数
8 *
9 * @param value T 类型的值
10 */
11 function Optional(value) {
12 this.value = value;
13 }
14 /**
15 * 返回一个指定 T 类型的值的 Optional 实例
16 *
17 * @param value T 类型的值
18 * @return T 类型的值的 Optional 实例
19 */
20 Optional.of = function (value) {
21 return new Optional(value);
22 };
23 /**
24 * 如果为非 null 或 undefined,返回 Optional 描述的指定值的实例,否则返回空的 Optional 实例
25 *
26 * @param value T 类型的值
27 * @return T 类型的值的 Optional 实例,或空的 Optional 实例
28 */
29 Optional.ofNullable = function (value) {
30 return Object.isUndefinedOrNull(value) ? Optional.empty() : new Optional(value);
31 };
32 /**
33 * 返回空的 Optional 实例
34 *
35 * @return 空的 Optional 实例
36 */
37 Optional.empty = function () {
38 return new Optional(null);
39 };
40 /**
41 * 如果 value 不为 null 或 undefined,则返回 value 的值;否则抛出异常
42 *
43 * @return Optional 中包含这个值
44 */
45 Optional.prototype.get = function () {
46 if (this.value === null || typeof this.value === 'undefined') {
47 throw "No value present";
48 }
49 return this.value;
50 };
51 /**
52 * 如果 value 不为 null 或 undefined,则返回 value 的值;否则返回 other
53 *
54 * @param other 其它值
55 * @return value 不为 null 或 undefined,则返回 value 的值;否则返回 other
56 */
57 Optional.prototype.orElse = function (other) {
58 return Object.isUndefinedOrNull(this.value) ? other : this.value;
59 };
60 /**
61 * 如果 value 不为 null 或 undefined,则返回 true;否则返回 false
62 *
63 * @return value 不为 null 或 undefined,则返回 true;否则返回 false
64 */
65 Optional.prototype.isPresent = function () {
66 return Object.isUndefinedOrNull(this.value) === false;
67 };
68 return Optional;
69}());
70window.Optional = Optional;
71//# sourceMappingURL=optional.js.map
\No newline at end of file