QQ 类型脚本 Primitives 类型
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"
}
即:
- 我们想 避免包括方法 例如
thisFunctionShouldNotBeIncludedInTheToPrimitives1,因此转换只应包括属性. - 我们想 平整或未封装属性 例如
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
编码质量标准
公布我们承诺遵守以下编码质量标准:
- 敬礼 语义版本: 补丁或小版本中不出现分解更改
- 在过渡性依赖中不出任何意外:使用 最小依赖关系 需要达到的目的
- 🎯 一个具体目的 开会时不用带一堆不必要的其他公用事业
- ✅ 测试 作为文档和使用实例
- 📖 记录良好的读取器 显示如何安装和使用
- ⚖️ 偏好开源的许可 和协作
有关公用事业和资源
学习资源
- 🚜 TypeScript Avanzado: Más allá de any (中文(简体) ) (西班牙语-课程)
- 📂 DDD en TypeScript: Estructura de 地毯 (西班牙语-YouTube视频)
- 用于类型脚本的域驱动设计 (西班牙语-课程)
- JavaScript 现代:布埃纳斯·普雷克塔克斯 (西班牙语-课程)
- QQ 打开 JavaScript 类型脚本 (西班牙语-课程)
QQ 类型脚本骨架
- QQ 类型脚本基本滑块: 启动您的新类型脚本前端工程
- QQ 类型脚本 API Skeleton: 启动您的新类型脚本后端工程
QQ TypeScript 域驱动设计仓库
- QQ TypeScript DD 斯凯莱通: 启动您的新类型脚本项目, 应用六边形架构和域驱动设计模式
- XQ 脚本 DDD 课程: 在 TS 课中学习域驱动设计
- QQ 类型脚本 DDD 示例: 应用六边形结构和域驱动设计模式的完整项目