TypeScript优雅编写单行工具函数:NestJS工具类优化需求
优化后的强类型NestJS工具类实现
下面是兼顾强类型约束、代码简洁性与可读性的改写方案,完全适配NestJS/TypeScript生态:
import { Injectable } from '@nestjs/common'; @Injectable() export class HelperOperations { static zones(region: string): string[] { return region.split(',', 2); } static instanceNames(name: string): string[] { return [`${name}-vm1`, `${name}-vm2`]; } static mediatorName(name: string): string { return `${name}-mediator`; } static mediatorZone(region: string): string { return region.split(',').pop() ?? ''; } static zoneNamePair(name: string, region: string): [string, string][] { return this.instanceNames(name).map((instName, index) => [instName, this.zones(region)[index]]); } }
关键优化点说明:
- 补全强类型声明:为所有方法的参数添加明确的类型标注,消除原代码中的隐式
any类型,强化TypeScript的类型检查能力 - 简化单行实现:所有方法均保持单行返回逻辑,逻辑清晰且紧凑
- 空值安全处理:在
mediatorZone中添加?? ''兜底,避免split().pop()返回undefined,严格符合返回值的string类型约束 - 优化内部调用:使用
this替代硬编码的类名调用静态方法,提升代码可维护性(若类名变更无需修改内部调用) - 函数式风格优化:
zoneNamePair直接通过map生成目标数组,移除原代码中冗余的数组声明与push操作,更符合函数式编程的简洁性
内容的提问来源于stack exchange,提问作者Pradip
相关产品推荐
相关产品推荐

