# 0type 中文文档

规范地址：https://npmcn.com/package/0type/

版本：0\.2\.0
npm 元数据更新时间：2024-12-27T03:38:56.192Z
中文译文更新时间：2026-10-31T14:02:06.808Z
软件包许可：ISC

本文由上游 README 机器翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/0type
原文对照：https://npmcn.com/package/0type/?lang=original

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：5.8 kB，9 个文件
- 模块格式：CommonJS
- TypeScript 类型：未声明
- 运行依赖：0 个
- 首次发布：2023-11-28T01:51:00.448Z
- 最新版本发布：2024-12-27T03:38:56.042Z
- 已发布版本数：5（近 12 个月 0 个）

## 中文简介

ts类型包

## 安装

```sh
npm install 0type
```

也可以使用：`pnpm add 0type`、`yarn add 0type`、`bun add 0type`

## README

# 描述

## ts 内置常用 & 拓展

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

### `Record<K, T>`

-   生成属性为`K`, 类型为`T`的类型几何
-   `K` 只支持 `number`, `string` , `symbol` 的类型

```ts
 const t1: Record<'s' |  -1 | symbol, number> = {
  's': 123,
  '-1': 123,
  [Symbol(1)]: 123
 }

```

#### `ERcord<K, T>`

-   拓展`K`的支持类型 `null, undefined, boolean`

```ts
 const te1: ERecord<null | undefined| true | false | '12', 1> = {
  null: 1,
  undefined: 1,
  false: 1,
  true: 1,
  12: 1
 }
```

### `Partial<T>`

-   全部变可选

```ts
 type tt = {
  a: number,
  b: number
 }

 const t2: Partial<tt> = {}
```

### `Required<T>`

-   全部变必填

```ts
 type tt = {
  a?: number,
  b: number
 }

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

### `Readonly<T>`

-   全部变只读

```ts
 type tt = {
  a: number,
  b: number
 }
 type t1 = Readonly<tt>
 // 等同于
 type t2 = {
  readonly a: number;
  readonly b: number;
 }
```

### `Pick<T,K>`

-   提取指定属性

```ts
 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`的属性

```ts
 type tt = number | string | boolean
 const t1: Exclude<tt, number|string> =  true
 const t2: Exclude<tt, number|boolean> = '12'
```

### `Extact<T,U>`

-   提取T和U都有的

```ts
 type tt = number | string | boolean
 const t1: Extract<tt, number> =  12
 const t2: Extract<tt, boolean> = true
```

### `NonNullable<T>`

-   去除掉`null`和`underfined`

```ts
// 不可以为 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 是什么？

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 和提交记录判断。

