SuperAPI AI 工具集

principle-type-system-discipline

设计与创作

查看项目

更新于 10-16 06:22

技能介绍

用途:这是一条适用于任何静态类型语言的原则技能,在涉及类型设计、函数签名评审或编写代码时应用。核心观点是把类型检查器当作证明助手,用它在编译期消除不可能状态、错配的原语和未处理的变体。

主要能力与模式:让非法状态不可表示,用和类型(TypeScript 判别联合、Rust/Swift/Kotlin 带载荷枚举、Scala sealed class、Haskell/OCaml ADT)建模变体,避免用一堆可选字段表达互相矛盾的状态;类型是构造而非限制,从想要的取值出发构造类型,例如非空列表是头加尾,合法时间区间是起点加时长;品牌化语义原语,让 UserId 与 OrderId 不可互换,创建时校验一次,下游信任类型;外部数据在解析前视为无类型,RPC、JSON、IPC、CLI 参数、配置文件、环境变量、数据库行都应在边界处解析为类型化模型;不要对类型系统撒谎,强制转换、不安全强制和断言函数是潜在运行时崩溃;穷尽匹配交给编译器,新增变体时编译必须失败;从权威 schema 派生类型,如 protobuf、OpenAPI、GraphQL、数据库迁移、设计令牌文件;只在出现部分性时加强类型,优先全函数。

使用方式:作为设计评审与编码时的检查清单使用,配合文中给出的测试问题自查,例如某字段组合是否需要用注释解释有效性、两个参数是否共享原语但含义不同、any/as/assertNotNull 从何而来、新增变体编译器是否会提示、类型是否重复了别处拥有的形状、加强类型是为了保持全函数还是仅仅更精确。

适用场景与限制:适用于任何带类型系统的语言与代码评审流程。资料未提供具体安装命令、平台支持、收费方式或效果数据。