# common 工具类型

在 CodeSandBox 中尝试 (opens new window)

# And 与

求出两个布尔类型进行逻辑与的结果

泛型参数

  • C1

    • 约束 boolean
    • 必须
  • C2

    • 约束 boolean
    • 必须

示例

import { common } from "typescript-lodash"

type Result1 = common.And<true, true> // true

type Result2 = common.And<true, false> // false

type Result3 = common.And<false, true> // false

type Result4 = common.And<false, false> // false

// 你可以使用 common.And3 和 common.And4 进行多个布尔类型的计算

# Or 或

求出两个布尔类型进行逻辑或的结果

泛型参数

  • C1

    • 约束 boolean
    • 必须
  • C2

    • 约束 boolean
    • 必须

示例

import { common } from "typescript-lodash"

type Result1 = common.Or<true, true> // true

type Result2 = common.Or<true, false> // true

type Result3 = common.Or<false, true> // true

type Result4 = common.Or<false, false> // false

// 你可以使用 common.Or3 和 common.Or4 进行多个布尔类型的计算

# Not 非

求出布尔类型进行逻辑非的结果

泛型参数

  • C
    • 约束 boolean
    • 必须

示例

import { common } from "typescript-lodash"

type Result1 = common.Not<false> // true

type Result2 = common.Not<true> // false

# CheckLeftIsExtendsRight 约束校验

校验左侧类型是否满足右侧类型的约束

如果是,则得到 true,否则得到 false

泛型参数

  • T

    • 约束 any
    • 必须
  • R

    • 约束 any
    • 必须

示例

import { common } from "typescript-lodash"

type Result1 = common.CheckLeftIsExtendsRight<1, number> // true

type Result2 = common.CheckLeftIsExtendsRight<1, any> // true

type Result3 = common.CheckLeftIsExtendsRight<1, 2> // false

# IsEqual 类型相等

判断两个类型是否严格相等

如果是,则得到 true,否则得到 false

泛型参数

  • T

    • 约束 any
    • 必须
  • R

    • 约束 any
    • 必须

示例

import { common } from "typescript-lodash"

type Result1 = common.IsEqual<1, number> // false

type Result2 = common.IsEqual<1, 1> // true

type Result3 = common.IsEqual<1, any> // false

# IsAny 判断 any

判断当前类型是否为 any

如果是,则得到 true,否则得到 false

泛型参数

  • T
    • 约束 any
    • 必须

示例

import { common } from "typescript-lodash"

type Result1 = common.IsAny<unknown> // false

type Result2 = common.IsAny<any> // true

# IsNever 判断 never

判断当前类型是否为 never

如果是,则得到 true,否则得到 false

泛型参数

  • T
    • 约束 any
    • 必须

示例

import { common } from "typescript-lodash"

type Result1 = common.IsNever<never> // true

type Result2 = common.IsNever<1> // false

# IsUnion 判断联合类型

判断当前类型是否为联合类型

如果是,则得到 true,否则得到 false

泛型参数

  • T
    • 约束 any
    • 必须

示例

import { common } from "typescript-lodash"

type Result1 = common.IsUnion<1 | 2> // true

type Result2 = common.IsUnion<1> // false

# Diff 差异

求两个联合类型的差异

泛型参数

  • T

    • 约束 any
    • 必须
  • C

    • 约束 any
    • 必须

示例

import { common } from "typescript-lodash"

type Result1 = common.Diff<1 | 2, 1 | 3> // 2 | 3

type Result2 = common.Diff<1 | 2, 1 | 2> // never

# SumAggregate 并集

求两个联合类型的并集

泛型参数

  • T

    • 约束 any
    • 必须
  • C

    • 约束 any
    • 必须

示例

import { common } from "typescript-lodash"

type Result1 = common.SumAggregate<1 | 2, 1 | 3> // 1 | 2 | 3

# Nullable 可为空

将类型变为可以为空的类型

泛型参数

  • T
    • 约束 any
    • 必须

示例

import { common } from "typescript-lodash"

type Result1 = common.Nullable<1 | 2> // 1 | 2 | null | undefined

# Many 一个或若干个

将类型变为可为数组的联合类型

泛型参数

  • T
    • 约束 any
    • 必须

示例

import { common } from "typescript-lodash"

type Result1 = common.Many<string> // string | string[]

# UnionToIntersection 联合转交叉

将联合类型变为交叉类型

泛型参数

  • U
    • 约束 any
    • 必须

示例

import { common } from "typescript-lodash"

type Result1 = common.UnionToIntersection<{ a: 1 } | { b: 1 }> // { a: 1 } & { b: 1 }

# UnionToTuple 联合转元组

将联合类型变为元组类型

泛型参数

  • U
    • 约束 any
    • 必须

示例

import { common } from "typescript-lodash"

type Result1 = common.UnionToTuple<1 | 2 | 3> // [1, 2, 3]
最后更新时间: 12/6/2022, 4:26:59 AM