@codelytv/primitives-type

中文文档
3.1.0发布于 2025/04/25GPL-3.0TypeScriptCommonJS零依赖构建来源已验证近 30 天下载 1765

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

中文使用文档
文档目录4 节
  1. 学习资源
  2. QQ 类型脚本骨架
  3. QQ TypeScript 域驱动设计仓库
  4. 其他语言 域驱动设计库

Codely logo

QQ 类型脚本 Primitives 类型

Codely Open Source CodelyTV Courses

TypeScript 工具类型,以确保只返回包含数字或布尔等原始类型(不是值对象)值的属性(不是方法).

看看这个,玩玩,玩玩. 欢迎明星们来

用法实例

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

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 的方式只包含原始价值,例如:

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

即:

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

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

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

编码质量标准

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

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

有关公用事业和资源

学习资源

QQ 类型脚本骨架

QQ TypeScript 域驱动设计仓库

其他语言 域驱动设计库

版本与发布记录

@codelytv/primitives-type 共发布 13 个版本,首次发布于 2022/05/26;过去 12 个月发布了 0 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
3.1.0latest2025/04/251.5 年前
3.0.22025/04/251.5 年前
2.0.02025/02/041.8 年前
1.2.02025/02/041.8 年前
1.1.12024/09/062 年前
1.1.02024/09/042 年前

关于 @codelytv/primitives-type 的常见问题

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