1 | ;
|
2 | /**
|
3 | * Optional 对象
|
4 | */
|
5 | var 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 | }());
|
70 | window.Optional = Optional;
|
71 | //# sourceMappingURL=optional.js.map |
\ | No newline at end of file |