# @codelytv/primitives-type 中文文档

规范地址：https://npmcn.com/package/%40codelytv/primitives-type/

版本：3\.1\.0
npm 元数据更新时间：2025-04-25T10:28:45.810Z
中文译文更新时间：2026-11-10T09:38:53.843Z
软件包许可：GPL-3\.0

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

原始 npm 页面：https://www.npmjs.com/package/%40codelytv/primitives-type
原文对照：https://npmcn.com/package/%40codelytv/primitives-type/?lang=original
项目主页：https://github.com/CodelyTV/typescript-primitives-type#readme
源码仓库：https://github.com/CodelyTV/typescript-primitives-type

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

- 包体积（解压后）：75.5 kB，82 个文件
- 模块格式：CommonJS
- TypeScript 类型：包内自带
- 运行依赖：0 个
- 首次发布：2022-05-26T14:45:52.560Z
- 最新版本发布：2025-04-25T10:28:45.422Z
- 近 30 天下载量：1765（2026-10-10 至 2026-11-08，npm 官方下载统计）
- 已发布版本数：13（近 12 个月 0 个）

## 中文简介

来自值对象的原始实体类型

## 安装

```sh
npm install @codelytv/primitives-type
```

也可以使用：`pnpm add @codelytv/primitives-type`、`yarn add @codelytv/primitives-type`、`bun add @codelytv/primitives-type`

## README

[![Codely logo](https://codely.com/logo/codely_logo.svg)](https://codely.com/)

# QQ 类型脚本 `Primitives` 类型

[![Codely Open Source](https://img.shields.io/badge/CodelyTV-OS-green.svg?style=flat-square)](https://github.com/CodelyTV) [![CodelyTV Courses](https://img.shields.io/badge/CodelyTV-PRO-black.svg?style=flat-square)](https://pro.codely.com/)

TypeScript 工具类型,以确保只返回包含数字或布尔等原始类型(不是值对象)值的属性(不是方法).  
  
看看这个,玩玩,玩玩. [欢迎明星们来](https://github.com/CodelyTV/typescript-primitives-type/stargazers)

# 用法实例

您可以拥有以下域实体: `Course`数字 :

```typescript
import { CourseId } from "./CourseId";
import { CourseTitle } from "./CourseTitle";

export class Course {
  constructor(public courseId: CourseId, public courseTitle: CourseTitle) {}

  updateTitle(newCourseTitle: CourseTitle): void {
    this.courseTitle = newCourseTitle;
  }

  someOtherMethodWithDomainLogic(): void {
    // some algorithm
  }
}
```

当我们想要一个 `toPrimitives` 方法,以便通过实例 `Course` 建筑层之间的分类,所以我们希望传递的东西 应该是序列化/ marshall 的方式只包含原始价值,例如:

```json
{
  "courseId": "25658f31-2da1-4942-8b58-88aeacc79860",
  "courseTitle": "🚜 TypeScript Avanzado: Más allá de any"
}
```

即:

-   我们想 **避免包括方法** 例如 `thisFunctionShouldNotBeIncludedInTheToPrimitives` 1,因此转换只应包括属性.
-   我们想 **平整或未封装属性** 例如 `courseId` 财务报告和审定财务报表 `courseTitle` 这些。 它们被模拟为价值对象(`CourseId` 财务报告和审定财务报表 `CourseTitle` 因此,转换或平整只应以递归方式包含属性.

这正是我们 `Primitives<T>` 公用事业类型担保。 让我们加起来

```typescript
import { Primitives } from "@codelytv/primitives-type";

import { CourseId } from "./CourseId";
import { CourseTitle } from "./CourseTitle";

export class Course {
  constructor(public courseId: CourseId, public courseTitle: CourseTitle) {}

  updateTitle(newCourseTitle: CourseTitle): void {
    this.courseTitle = newCourseTitle;
  }

  someOtherMethodWithDomainLogic(): void {
    // some algorithm
  }

  toPrimitives(): Primitives<Course> {
    return {
      courseId: this.courseId.value,
      courseTitle: this.courseTitle.value,
    };
  }
}
```

结束了

这个 `Primitives<Course>` 返回类型确保了我们所有的限制都非常直接

# 如何安装

-   无 : `npm install --save-dev @codelytv/primitives-type`
-   亚伦: `yarn add -D @codelytv/primitives-type`

# 编码质量标准

公布我们承诺遵守以下编码质量标准:

-   敬礼 **语义版本**: 补丁或小版本中不出现分解更改
-   在过渡性依赖中不出任何意外:使用 **最小依赖关系** 需要达到的目的
-   🎯 **一个具体目的** 开会时不用带一堆不必要的其他公用事业
-   ✅ **测试** 作为文档和使用实例
-   📖 **记录良好的读取器** 显示如何安装和使用
-   ⚖️ **偏好开源的许可** 和协作

# 有关公用事业和资源

## 学习资源

-   [🚜 TypeScript Avanzado: Más allá de any (中文(简体) )](https://pro.codely.com/library/typescript-avanzado-mas-alla-de-any-182513/418230/about/) (西班牙语-课程)
-   [📂 DDD en TypeScript: Estructura de 地毯](https://youtu.be/AJJRk7qmVHg) (西班牙语-YouTube视频)
-   [用于类型脚本的域驱动设计](https://pro.codely.com/library/ddd-en-typescript-modelado-y-arquitectura-172533/375662/about/) (西班牙语-课程)
-   [JavaScript 现代:布埃纳斯·普雷克塔克斯](https://pro.codely.com/library/javascript-moderno-buenas-practicas-para-empezar-y-refactorizar-aplicaciones-69571/208928/about/) (西班牙语-课程)
-   [QQ 打开 JavaScript 类型脚本](https://pro.codely.com/library/de-javascript-a-typescript-128106/347481/about/) (西班牙语-课程)

## QQ 类型脚本骨架

-   [QQ 类型脚本基本滑块](https://github.com/CodelyTV/typescript-basic-skeleton): 启动您的新类型脚本前端工程
-   [QQ 类型脚本 API Skeleton](https://github.com/CodelyTV/typescript-api-skeleton): 启动您的新类型脚本后端工程

## QQ TypeScript 域驱动设计仓库

-   [QQ TypeScript DD 斯凯莱通](https://github.com/CodelyTV/typescript-ddd-skeleton): 启动您的新类型脚本项目, 应用六边形架构和域驱动设计模式
-   [XQ 脚本 DDD 课程](https://github.com/CodelyTV/typescript-ddd-course): 在 TS 课中学习域驱动设计
-   [QQ 类型脚本 DDD 示例](https://github.com/CodelyTV/typescript-ddd-example): 应用六边形结构和域驱动设计模式的完整项目

## 其他语言 域驱动设计库

-   [QQ Java DDD 示例](https://github.com/CodelyTV/java-ddd-example)
-   [PHP DDD 示例](https://github.com/CodelyTV/php-ddd-example)
-   [scala DDD 示例](https://github.com/CodelyTV/scala-ddd-example)
-   [\# C# DDD 摇摆](https://github.com/CodelyTV/csharp-ddd-skeleton)

## 常见问题

### @codelytv/primitives-type 是什么？

来自值对象的原始实体类型

### 如何安装 @codelytv/primitives-type？

在项目目录运行 npm install @codelytv/primitives-type，或使用 pnpm add / yarn add / bun add。

### @codelytv/primitives-type 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @codelytv/primitives-type 支持 ESM 还是 CommonJS？

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

### @codelytv/primitives-type 可以商用吗？

@codelytv/primitives-type 使用 GPL-3\.0 许可。强 Copyleft：分发包含该代码的软件时，整个作品需以 GPL-3\.0 兼容许可开源，并附带专利与反锁定条款。仅内部使用不触发此义务。以上为概括，不构成法律意见，请以许可原文为准。

### @codelytv/primitives-type 的下载量有多少？

根据 npm 官方下载统计，@codelytv/primitives-type 在 2026/10/10 – 2026/11/08 这 30 天内被下载 1,765 次，日均约 59 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @codelytv/primitives-type 还在维护吗？

最新版本 3\.1\.0 发布于 2025/04/25（1\.5 年前）；至今共发布 13 个版本，其中过去 12 个月发布了 0 个；首次发布于 2022/05/26。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

