@buka/class-transformer-extra

中文文档
2.1.4发布于 2024/12/19MITTypeScriptESM + CJS构建来源已验证近 30 天下载 4.8万

class-transformer-extra中包含不包含在类-transform包中的方法.

中文使用文档
文档目录9 节
  1. 安装
  2. 使用量
  3. 字符串
  4. 日期
  5. 数目
  6. 布尔
  7. 阵列
  8. 贡献
  9. Q&A

@buka/ class- transfer-extra

version downloads dependencies license Codecov

@buka/class-transformer-extra 包含不包含在 class-transformer 软件包.

安装

npm install @buka/class-transformer-extra class-transformer
# OR
yarn install @buka/class-transformer-extra class-transformer
# OR
pnpm install @buka/class-transformer-extra class-transformer

使用量

字符串

方法在变压器之前变压器之后
@Split(",")"a,b,c"["a", "b", "c"]
@Trim()" abc ""abc"
@ToString({ optional: true })123"123"
@ToLowerCase()"ABC""abc"
@ToUpperCase()"abc""ABC"
@Replace("-", "_")"a-b-c""a_b_c"

@Split, (中文(简体) ), @Trim, (中文(简体) ), @ToLowerCase, (中文(简体) ), @ToUpperCase 财务报告和审定财务报表 @Replace 如果值不是字符串,则不会做任何事情. 设定时 optional: true, (中文(简体) ), undefined 将不会改变.

日期

方法在变压器之前变压器之后
@ToDate({ optional: true })"2024-01-01"new Date("2024-01-01")
@FormatDate("YYYY/MM/DD", { optional: true })"2024-01-01""2024/01/01"

数目

方法在变压器之前变压器之后
@ToNumber({ optional: true })"123"123
@ToBigInt({ optional: true })"123"123n

ToNumber() 财务报告和审定财务报表 @ToBigInt() 如果数值不是数字, 将会返回 NaN

布尔

方法在变压器之前变压器之后
@ToBoolean()1true

ToBoolean() 有多个参数来适应不同的需要,例如:

ToBoolean(v => Boolean(v)), { optional: true })数字 : 如果值是 undefined什么都别做 否则, v => Boolean(v) 将用来转换值.

ToBoolean(['0', 'false', false], { optional: true })数字 :

如果值是 '0' 或者说 'false' 或者说 false,转换为 false,如果值为 undefined,不做任何事情,否则价值将转换为 true。 。 。 .

阵列

方法在变压器之前变压器之后
@Filter((num: number) => num > 3)[1,2,3.4,5][4,5]
@Flatten()[1, [2, [3, 4, [5]]]][1,2,3,4,5]
@Uniq()[1,1,2,3,4,4,5][1,2,3,4,5]
@UniqBy(Math.abs)[-1, 1, 2, 3, -3][-1, 2, 3]

@Filter, (中文(简体) ), @Flatten, (中文(简体) ), @Uniq 财务报告和审定财务报表 @UniqBy 如果值不是数组,则将不采取任何行动.

贡献

如果您想要报告错误或添加新的装饰器, 请提交问题或拉请求 .

Q&A

  1. 为什么不能用它与 @IsOptional 装饰师?

    最新版本为 class-validator@^0.14.1 没有设置可以识别的元数据 @IsOptional。 。 。 . 如果在以后的版本中添加识别资料,我也将采取后续行动。 在开发分支中添加了标识符 class-validator。 。 。 .

版本与发布记录

@buka/class-transformer-extra 共发布 7 个版本,首次发布于 2024/01/08;过去 12 个月发布了 0 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
2.1.4latest2024/12/191.9 年前
2.1.22024/10/202 年前
2.1.12024/09/122 年前
2.1.02024/09/032 年前
2.0.02024/08/292 年前
1.1.12024/02/192 年前

关于 @buka/class-transformer-extra 的常见问题

@buka/class-transformer-extra 是什么?

class-transformer-extra中包含不包含在类-transform包中的方法.

如何安装 @buka/class-transformer-extra?

在项目目录运行 npm install @buka/class-transformer-extra,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:class-transformer(^0.5.1)、class-validator(^0.14.1)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@buka/class-transformer-extra 支持 TypeScript 吗?

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

@buka/class-transformer-extra 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@buka/class-transformer-extra 可以商用吗?

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

@buka/class-transformer-extra 的下载量有多少?

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

@buka/class-transformer-extra 还在维护吗?

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