0type

中文文档
0.2.0发布于 2024/12/27ISCCommonJS零依赖

ts类型包

中文使用文档
文档目录12 节
  1. ts 内置常用 & 拓展
  2. Record<K, T>
  3. Partial<T>
  4. Required<T>
  5. Readonly<T>
  6. Pick<T,K>
  7. Exclude<T,U>
  8. Extact<T,U>
  9. NonNullable<T>
  10. Omit<T,K>
  11. 基础类型
  12. ts拓展

描述

ts 内置常用 & 拓展

  • 拓展内置类型名前加E, 表示对原有的类型进行拓展

Record<K, T>

  • 生成属性为K, 类型为T的类型几何
  • K 只支持 number, string , symbol 的类型
 const t1: Record<'s' |  -1 | symbol, number> = {
  's': 123,
  '-1': 123,
  [Symbol(1)]: 123
 }

ERcord<K, T>

  • 拓展K的支持类型 null, undefined, boolean
 const te1: ERecord<null | undefined| true | false | '12', 1> = {
  null: 1,
  undefined: 1,
  false: 1,
  true: 1,
  12: 1
 }

Partial<T>

  • 全部变可选
 type tt = {
  a: number,
  b: number
 }

 const t2: Partial<tt> = {}

Required<T>

  • 全部变必填
 type tt = {
  a?: number,
  b: number
 }

 const t3: Required<tt> = {
  a: 0,
  b: 0
 }

Readonly<T>

  • 全部变只读
 type tt = {
  a: number,
  b: number
 }
 type t1 = Readonly<tt>
 // 等同于
 type t2 = {
  readonly a: number;
  readonly b: number;
 }

Pick<T,K>

  • 提取指定属性
 type tt = {
  n: number,
  n2: number,
  s: string,
  s2: string,
 }
 const t1: Pick<tt, 'n'> = {
  n: 1
 }
 const t2: Pick<tt, 'n'|'s'> = {
  n: 1,
  s: 's'
 }

Exclude<T,U>

  • 从T中排除掉所有包含U的属性
 type tt = number | string | boolean
 const t1: Exclude<tt, number|string> =  true
 const t2: Exclude<tt, number|boolean> = '12'

Extact<T,U>

  • 提取T和U都有的
 type tt = number | string | boolean
 const t1: Extract<tt, number> =  12
 const t2: Extract<tt, boolean> = true

NonNullable<T>

  • 去除掉null和underfined
// 不可以为 null 和 undefined
const t1: NonNullable<number> = 1
const t2: NonNullable<123> = 123

Omit<T,K>

  • 忽略T中的K属性

基础类型

类型描述预期
NumberLike可转number的类型 number | `${number}`
CanStringified可转string的类型string | number | bigint | boolean | null | undefined

ts拓展

版本与发布记录

0type 共发布 5 个版本,首次发布于 2023/11/28;过去 12 个月发布了 0 个版本。

版本发布日期距今
0.2.0latest2024/12/271.9 年前
0.1.02024/04/072 年前
0.0.32024/04/072 年前
0.0.22024/04/072 年前
0.0.12023/11/282 年前

关于 0type 的常见问题

0type 是什么?

ts类型包

如何安装 0type?

在项目目录运行 npm install 0type,或使用 pnpm add / yarn add / bun add。

0type 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/0type 是否存在。

0type 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

0type 可以商用吗?

0type 使用 ISC 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

0type 还在维护吗?

最新版本 0.2.0 发布于 2024/12/27(1.9 年前);至今共发布 5 个版本,其中过去 12 个月发布了 0 个;首次发布于 2023/11/28。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。