用途:这是一份 TypeScript 编码规范,供编写或评审 TS 代码、决定类型声明、函数风格与命名约定时参考。核心原则包括:类型即文档与约束、默认不可变、显式优于隐式、函数式核心返回 Result 而命令式外壳可抛异常、配置优于魔法。
主要能力与规则:类型声明上,除类契约外一律用 type 而非 interface;命名上使用 FooOptions、FooConfig、FooResult、FooFn、FooProps、FooState 等后缀,变量函数用 camelCase、类型类用 PascalCase、常量用 UPPER_CASE、文件用 kebab-case,布尔值用 is/has/can/should/will 前缀并避免否定命名。函数方面,顶层用 function 声明,内联回调用箭头函数;3 个及以上参数或含可选参数时使用参数对象;异步函数显式标注 Promise 返回类型,优先 async/await,并仅在 I/O 等场景使用异步。类仅用于依赖注入,采用构造函数注入到 private readonly 字段。类型推断上,函数签名显式、局部变量可推断。不可变性上,引用类型参数标记 Readonly<T>,数组一律用 Array<T> 或 ReadonlyArray<T>,禁止 T[] 语法,深层不可变可用 type-fest 的 ReadonlyDeep<T>。货币与金融计算必须使用 math.js,禁止用 JS number。
使用方式:资料未提供安装命令或具体接入步骤,仅给出规范条文与代码示例。
适用场景:TypeScript 项目编码、代码评审、类型与命名决策。
限制:资料未说明适用版本、工具链、平台或收费信息;部分内容(如 math.js 示例)在原文中被截断。