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 numberwith 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