@txjs/bool
v1.0.5
Published
数据类型校验函数库
Readme
@txjs/bool
用于验证和判断数据类型的实用函数
使用 npm
npm i @txjs/bool使用 pnpm
pnpm add @txjs/bool使用 yarn
yarn add @txjs/bool导入方式
import { is, isNil } from '@txjs/bool'
// 或
import { isNil } from '@txjs/bool/dist/isNil'函数列表
toString
将值转为字符串。
function toString(value: unknown): string示例:
toString(123) // "123"
toString(true) // "true"
toString([1, 2, 3]) // "1,2,3"is
验证 value 值类型
function is(value: unknown, type: string): value is T示例:
is(123, 'number') // true
is({}, 'object') // true
is([], 'array') // trueisArray
检查 value 是否是 Array 类型
function isArray(value: T): value is T extends Array ? T : never示例:
isArray([1, 2, 3]) // true
isArray('abc') // falseisBoolean
检查 value 是否是 boolean 类型
function isBoolean(value: unknown): value is boolean示例:
isBoolean(true) // true
isBoolean('true') // falseisFunction
检查 value 是否是 function 类型
function isFunction(value: unknown): value is (...args: any[]) => any示例:
isFunction(() => {}) // true
isFunction('string') // falseisAsyncFunction
检查 value 是否是 async function 类型
function isAsyncFunction(value: unknown): value is (...args: any[]) => Promise示例:
isAsyncFunction(async () => {}) // true
isAsyncFunction(() => {}) // falseisInteger
检查 value 是否是整数,包含 0
function isInteger(value: unknown): value is number示例:
isInteger(10) // true
isInteger(3.14) // falseisNil
检查 value 是否是 undefined 或 null 类型
function isNil(value: unknown): value is null | undefined示例:
isNil(null) // true
isNil(undefined) // trueisNull
检查 value 是否是 null 类型
function isNull(value: unknown): value is null示例:
isNull(null) // true
isNull(undefined) // falseisNumber
检查 value 是否是 number 类型,值不能为 NaN
function isNumber(value: unknown): value is number示例:
isNumber(3) // true
isNumber('3') // falseisNumeric
检查 value 是否是 number 类型,支持字符串校验
function isNumeric(value: unknown): value is number | string示例:
isNumeric(3) // true
isNumeric('3') // true
isNumeric('abc') // falseisPhone
检查 value 是否是手机号码(包含虚拟号段)
function isPhone(value: unknown): value is string示例:
isPhone('13566667777') // true
isPhone('17012345678') // falseisNonVirtualPhone
检查 value 是否为手机号码(不包含虚拟号段)
function isNonVirtualPhone(value: unknown): value is string示例:
isNonVirtualPhone('13987654321') // true
isNonVirtualPhone('17712345678') // falseisPlainObject
检查 value 是否是 object 类型,不包含 null 类型
function isPlainObject(value: T): value is T extends Record ? T : never示例:
isPlainObject({}) // true
isPlainObject(null) // falseisPromise
检查 value 是否是 promise 类型
function isPromise(value: T): value is T extends Promise ? T : never示例:
isPromise(Promise.resolve()) // true
isPromise({}) // falseisString
检查 value 是否是 string 类型
function isString(value: unknown): value is string示例:
isString('hello') // true
isString(123) // falseisSymbol
检查 value 是否是 symbol 类型
function isSymbol(value: unknown): value is symbol示例:
isSymbol(Symbol('symbol')) // true
isSymbol('symbol') // falseisUndefined
检查 value 是否是 undefined 类型
function isUndefined(value: unknown): value is undefined示例:
isUndefined(undefined) // true
isUndefined(null) // falseisHttpUrl
检查 value 是否是以 http 或 https 开头的url
function isHttpUrl(value: unknown): value is string示例:
isHttpUrl('http://example.com') // true
isHttpUrl('ftp://example.com') // falseisAbsoluteUrl
检查 value 是否是绝对的 URL
function isAbsoluteUrl(value: unknown): boolean示例:
isAbsoluteUrl('http://example.com') // true
isAbsoluteUrl('/example') // falseisEqual
检查两个值是否相等
function isEqual(value: any, other: any, seen?: WeakMap): boolean示例:
isEqual({ a: 1 }, { a: 1 }) // true
isEqual([1, 2], [1, 2]) // true
isEqual(1, '1') // falseisEmail
检查 value 是否是 email 格式
export declare function isEmail(value: unknown): boolean示例:
isEmail('[email protected]') // true
isEmail('example.com') // falseisLandline
检查 value 是否是座机号码
export declare function isLandline(value: unknown): value is string示例:
isLandline('13215666') // false
isLandline('0592-5966633') // true
isLandline('0592-5966633-123') // truecontainsHTML
检查 value 是否是包含 HTML
export declare function containsHTML(value: unknown): value is string示例:
containsHTML('<div>Test</div>'); // true
containsHTML('<img src='image.jpg' />'); // true
containsHTML('</>'); // false
containsHTML('1 < 2 && 3 > 4'); // falseisNonEmptyObject
检查 value 是否不为空对象
export declare function isNonEmptyObject<T>(value: T): value is T extends Record<any, any> ? T : never;****示例:
isNonEmptyObject({}) // false
isNonEmptyObject({ a: 'text1' }) // true