Skip to content

when() function

根据第一个参数的条件返回原始值或执行作为第二个参数传递的函数的结果。

Signature:

typescript
declare function when<T, S extends T, R>(
  predicate: (input: T) => input is S,
  callback: (input: S) => R,
): (a: T) => R | Exclude<T, S>;

Example

typescript
when(
  isNumber,
  () => `This is number`
  100,
); // This is number

with pipe

typescript
pipe(
  100,
  when(isNumber, () => `This is number`),
); // This is number

pipe(
  100,
  when(isNumber, (value) => value * 2),
); // 200

pipe(
  100,
  when(
    isString,
    () => `This is number`, // not work
  ),
); // 100

Open Source Code

Released under the Apache-2.0 License.