用途:指导 TypeScript 类型命名,让类型名传达含义而非结构。核心规则是类型名应对领域专家有意义,非程序员看不懂就应改名;业务术语优先于技术术语,含义优先于结构,命名即文档。
主要能力与建议:用领域语言命名类型,如用 User、Product、Order、ProductCatalog 取代 IEntityWithIdAndName、IDataRecord、ICollection;属性名同样使用领域词,如 email、age、purchases,而非 dataString、valueNumber、itemsArray。避免三类模式:匈牙利式前缀(IUser、IProduct)、冗余后缀(UserType、ProductInterface、OrderObject)、泛化技术词(DataModel、EntityRecord、ItemContainer)。同一结构在不同领域应有不同命名,如医疗的 Patient 与教育的 Student。
例外:广泛理解的标准技术概念(HttpRequest、DatabaseConnection、CacheEntry)、真正通用的工具类型(Nullable<T>、AsyncResult<T>)、内部实现细节(InternalCacheNode<T>、TreeNodeImpl<T>)可使用技术名。
限制与提醒:资料未提供安装命令、代码运行方式或平台信息。该技能为命名规范建议,不涉及具体工具调用;面对“用户看不到”“我们有命名约定”等压力时,应以清晰为先,挑战降低可读性的约定。参考自《Effective TypeScript》第 41 条。