Optional 类是一个可以为 null 或 undefined 的容器对象,如果值 value 存在则 isPresent() 方法会返回 true,调用 get() 方法会返回 value 的值。 其设计思想,参考 java8 的 Optional
使用方式,在构造函数中传入任意类型值;Optional 提供很多有用的方法,这样我们就不用显式进行 null 值和 undefined 的检测。
方法 | 描述 |
---|---|
of | 返回一个指定 T 类型的值的 Optional 实例 |
ofNullable | 如果为非 null 或 undefined,返回 Optional 描述的指定值的实例,否则返回空的 Optional 实例 |
empty | 返回空的 Optional 实例 |
get | 如果 value 不为 null 或 undefined,则返回 value 的值;否则抛出异常 |
orElse | 如果 value 不为 null 或 undefined,则返回 value 的值;否则返回 other |
isPresent | 如果 value 不为 null 或 undefined,则返回 true;否则返回 false |
<script type="text/javascript">
var optional = new Optional(any value);
</script>
类型:Function
功能描述:返回一个指定 T 类型的值的 Optional 实例
参数:value - any of T
任意类型的值
返回值:Object
T 类型的值的 Optional 实例
示例:
原生 JavaScript
<script type="text/javascript">
Optional.of(11);
</script>
vue
<template>
<div>
</div>
</template>
<script lang="ts">
import { defineComponent } from 'vue';
export default defineComponent({
setup() {
const optional: boolean = Optional.<boolean>of(false)
}
});
</script>
类型:Function
功能描述:如果为非 null 或 undefined,返回 Optional 描述的指定值的实例,否则返回空的 Optional 实例
参数:value - any as T
任意类型的值
返回值:Object
T 类型的值的 Optional 实例,或空的 Optional 实例
示例:
原生 JavaScript
<script type="text/javascript">
Optional.ofNullable('js');
</script>
vue
<template>
<div>
</div>
</template>
<script lang="ts">
import { defineComponent } from 'vue';
export default defineComponent({
setup() {
const optional: number = Optional.<number>ofNullable(11)
}
});
</script>
类型:Function
功能描述:返回空的 Optional 实例
参数:无
返回值:Object as Optional
空的 Optional 实例
示例:
原生 JavaScript
<script type="text/javascript">
Optional.empty();
</script>
vue
<template>
<div>
</div>
</template>
<script lang="ts">
import { defineComponent } from 'vue';
export default defineComponent({
setup() {
const optional: null Optional.<null>empty()
}
});
</script>
类型:Function
功能描述:如果 value 不为 null 或 undefined,则返回 value 的值;否则抛出异常
参数:无
返回值:any as T
Optional 中包含这个值
示例:
原生 JavaScript
<script type="text/javascript">
var optional = Optional.of(11);
var result = optional.get(); // 11
</script>
vue
<template>
<div>
</div>
</template>
<script lang="ts">
import { defineComponent } from 'vue';
export default defineComponent({
setup() {
const optional: number = Optional.<number>of(11)
const result = optional.get() // 11
}
});
</script>
类型:Function
功能描述:如果 value 不为 null 或 undefined,则返回 value 的值;否则返回 other
参数:other - any of T
任意类型的值
返回值:any as T
value 不为 null 或 undefined,则返回 value 的值;否则返回 other
示例:
原生 JavaScript
<script type="text/javascript">
var optional = Optional.of(null);
var result = optional.orElse("abc"); // abc
</script>
vue
<template>
<div>
</div>
</template>
<script lang="ts">
import { defineComponent } from 'vue';
export default defineComponent({
setup() {
const optional: boolean = Optional.<boolean>of(undefined)
const result = optional.orElse(false) // false
}
});
</script>
类型:Function
功能描述:如果 value 不为 null 或 undefined,则返回 true;否则返回 false
参数:无
返回值:boolean
value 不为 null 或 undefined,则返回 true;否则返回 false
示例:
原生 JavaScript
<script type="text/javascript">
var optional = Optional.of(null);
var result = optional.isPresent(); // false
</script>
vue
<template>
<div>
</div>
</template>
<script lang="ts">
import { defineComponent } from 'vue';
export default defineComponent({
setup() {
const optional: number = Optional.<number>of(11)
const result = optional.isPresent() // true
}
});
</script>