概述

基本类型比较函数


目录


Compare (接口)

比较两个对象是否相等

签名

interface Compare {}

v0.2.0 中添加

BasicCompareType (类型)

基本的比较类型

签名

export type BasicCompareType = 'string' | 'number' | 'boolean' | 'date' | 'enum'

v0.2.0 中添加

CompareBoolean (类型)

布尔类型比较函数接口

签名

export type CompareBoolean<A = boolean> = {
  eq: Compare<A, A>
  not: Compare<A, A>
}

v0.2.0 中添加

CompareEnum (类型)

枚举型比较接口

签名

export type CompareEnum<A> = CompareBoolean<A> & {
  in: Compare<A[], A>
  not_in: Compare<A[], A>
}

v0.2.0 中添加

CompareNumber (类型)

数值型比较接口

签名

export type CompareNumber<A = number> = CompareBoolean<A> & {
  lt: Compare<A, A>
  gt: Compare<A, A>
  lte: Compare<A, A>
  gte: Compare<A, A>
  between: Compare<{ low: A; hi: A }, A>
}

v0.2.0 中添加

CompareString (类型)

字符型比较接口

签名

export type CompareString<A extends string = string> = CompareNumber<A> & {
  not_contains: Compare<A, A>
  not_starts_with: Compare<A, A>
  not_ends_with: Compare<A, A>
  not_in: Compare<A[], A>
  starts_with: Compare<A, A>
  ends_with: Compare<A, A>
  contains: Compare<A, A>
  in: Compare<A[], A>
  pattern: Compare<A[] | A, A>
}

v0.2.0 中添加

GetFirstParam (类型)

获得比较函数的第一个参数类型

签名

export type GetFirstParam<T> = T extends Compare<infer U, any> ? U : never

示例

import { GetFirstParam } from 'macoolka-compare'
type Fisrt = GetFirstParam<(a: number) => (b: string) => boolean>
//First = number

v0.2.0 中添加

BasicConditionNames (常量)

所有的函数名称

签名


export const BasicConditionNames: { string: string[]; number: string[]; boolean: string[]; enum: string[]; date: string[]; } = ...

v0.2.0 中添加

compare (常量)

所有支持的比较函数,按类型拆分

签名


export const compare: { string: CompareString<any>; number: CompareNumber<any>; boolean: CompareBoolean<any>; date: CompareNumber<Date>; enum: CompareEnum<string>; } = ...

v0.2.0 中添加

compareBoolean (常量)

BooleanCompare 实例

签名


export const compareBoolean: CompareBoolean<any> = ...

v0.2.0 中添加

compareDate (常量)

日期型比较实例

签名


export const compareDate: CompareNumber<Date> = ...

v0.2.0 中添加

compareEnum (常量)

CompareEnum实例

签名


export const compareEnum: CompareEnum<string> = ...

v0.2.0 中添加

compareNumber (常量)

CompareNumber实例

签名


export const compareNumber: CompareNumber<any> = ...

v0.2.0 中添加

compareString (常量)

CompareString 实例

签名


export const compareString: CompareString<any> = ...

v0.2.0 中添加

fromEq (函数)

Eq转化到布尔比较函数接口

v0.2.0 中添加

fromOrd (函数)

转换OrdCompareNumber实例

v0.2.0 中添加