@buession/prototype
Version:
A native object extension framework for Javascript.
55 lines (54 loc) • 1.54 kB
TypeScript
/**
* Optional 对象
*/
declare class Optional<T> {
private value;
/**
* 构造函数
*
* @param value T 类型的值
*/
private constructor();
/**
* 返回一个指定 T 类型的值的 Optional 实例
*
* @param value T 类型的值
* @return T 类型的值的 Optional 实例
*/
static of<T>(value: T): Optional<T>;
/**
* 如果为非 null 或 undefined,返回 Optional 描述的指定值的实例,否则返回空的 Optional 实例
*
* @param value T 类型的值
* @return T 类型的值的 Optional 实例,或空的 Optional 实例
*/
static ofNullable<T>(value: T): Optional<T>;
/**
* 返回空的 Optional 实例
*
* @return 空的 Optional 实例
*/
static empty<T>(): Optional<T>;
/**
* 如果 value 不为 null 或 undefined,则返回 value 的值;否则抛出异常
*
* @return Optional 中包含这个值
*/
get<T>(): T;
/**
* 如果 value 不为 null 或 undefined,则返回 value 的值;否则返回 other
*
* @param other 其它值
* @return value 不为 null 或 undefined,则返回 value 的值;否则返回 other
*/
orElse<T>(other: T): T;
/**
* 如果 value 不为 null 或 undefined,则返回 true;否则返回 false
*
* @return value 不为 null 或 undefined,则返回 true;否则返回 false
*/
isPresent(): boolean;
}
interface Window {
Optional: typeof Optional;
}