0.3.2 • Published 2 years ago
@chrock/optional v0.3.2
@chrock/optional
@chrock/optional是一个工具模块,用于提供其他语言中的Optional类型,以及一些相关的操作。\
@chrock/optional is a utility module that provides an Optional type like in other languages, and some related operations.
使用示例 Example
Optional.ofimport { Optional } from '@chrock/optional'; const optional = Optional.of(1); console.log(optional.value); // <- 1Optional.mapimport { Optional } from '@chrock/optional'; const optional = Optional.of(1); const mapped = optional.map((v) => (v + 1)); console.log(mapped.value); // <- 2使用
also进行副作用操作\ Perform side effects withalsoimport { Optional } from '@chrock/optional'; const optional = Optional.of(1); optional.also((v) => console.log(v)); // <- 1 const empty = Optional.empty(); empty.also((v) => console.log(v)); // <- 永远不会执行,因为`Optional.value`为`undefined`使用
getOrElse获取值或默认值\ Get value or default value withgetOrElseimport { Optional } from '@chrock/optional'; const optional = Optional.of(1); console.log(optional.getOrElse(0)); // <- 1 const empty = Optional.empty(); console.log(empty.getOrElse(0)); // <- 0使用
Optional.of进行某些初始化操作 UsingOptional.offor some initialization operationsimport { Optional } from '@chrock/optional'; class WithOptional { el: HTMLElement = Optional.of(document.createElement('div')).map((el) => { el.innerText = 'Hello, World!'; el.classList.add('container'); el.addEventListener('click', () => { console.log('Clicked!'); }); return el; }).value; } const withOptional = new WithOptional(); document.body.appendChild(withOptional.el);