概述
逻辑函数
目录
and (函数)
用and
连接Predicate
签名
export const and = <A>(p1: Predicate<A>, p2: Predicate<A>): Predicate<A> => ...
示例
import { and } from 'macoolka-predicate'
interface A {
name: string
age: number
}
const as: A[] = [{ name: 'a1', age: 20 }, { name: 'a2', age: 20 }, { name: 'a3', age: 28 }]
const isName = (a: A) => a.name === 'a1'
const isAge = (a: A) => a.age === 20
expect(as.filter(and(isName, isAge)).length).toEqual(1)
v0.2.0 中添加
foldAND (函数)
fold
Predicate
数组用and
签名
export const foldAND = <A>(p: Array<Predicate<A>>): Predicate<A> => ...
示例
import { foldAND } from 'macoolka-predicate'
interface A {
name: string
age: number
}
const as: A[] = [{ name: 'a1', age: 20 }, { name: 'a2', age: 20 }, { name: 'a3', age: 28 }]
const isName = (a: A) => a.name === 'a1'
const isAge = (a: A) => a.age === 20
expect(as.filter(foldAND([isName, isAge])).length).toEqual(1)
v0.2.0 中添加
foldOR (函数)
fold
Predicate
数组用or
签名
export const foldOR = <A>(p: Array<Predicate<A>>): Predicate<A> => ...
示例
import { foldOR } from 'macoolka-predicate'
interface A {
name: string
age: number
}
const as: A[] = [{ name: 'a1', age: 20 }, { name: 'a2', age: 20 }, { name: 'a3', age: 28 }]
const isName = (a: A) => a.name === 'a1'
const isAge = (a: A) => a.age === 20
expect(as.filter(foldOR([isName, isAge])).length).toEqual(2)
v0.2.0 中添加
not (函数)
Predicate
结果取反
示例
import { and } from 'macoolka-predicate'
interface A {
name: string
age: number
}
const as: A[] = [{ name: 'a1', age: 20 }, { name: 'a2', age: 20 }, { name: 'a3', age: 28 }]
const isName = (a: A) => a.name === 'a1'
const isAge = (a: A) => a.age === 20
expect(as.filter(and(isName, isAge)).length).toEqual(1)
v0.2.0 中添加
or (函数)
用or
连接Predicate
示例
import { or } from 'macoolka-predicate'
interface A {
name: string
age: number
}
const as: A[] = [{ name: 'a1', age: 20 }, { name: 'a2', age: 20 }, { name: 'a3', age: 28 }]
const isName = (a: A) => a.name === 'a1'
const isAge = (a: A) => a.age === 20
expect(as.filter(or(isName, isAge)).length).toEqual(2)
v0.2.0 中添加