SuperAPI AI 工具集

typescript-patterns

编程与开发

查看项目

更新于 10-15 08:32

技能介绍

TypeScript Patterns 是一个用于指导 TypeScript 代码编写与审查的技能,核心目标是提供类型、接口、断言和类型安全方面的最佳实践。当需要编写或评审 TypeScript 代码时可以使用它。

主要能力与约定:

类型推断优先于显式返回类型。示例中推荐让函数返回类型由推断得出,而不是显式标注返回类型,理由是推断能够捕获隐式的类型强制转换缺陷。

运行时类型断言。不要对 JSON.parse 的结果进行硬转换,而应在运行时进行校验。示例展示了通过类型谓词函数(如 isMyType)配合 assert 来验证未知值,避免直接硬转换。

类型断言函数。断言函数接收 unknown 类型的参数,始终返回布尔值,绝不抛出异常;随后可与 assert 搭配使用。

类型与接口的选择。除非被明确要求,否则始终优先使用 type。type 适用于对象形状、函数作用域内的局部类型以及联合类型;interface 仅在明确要求时使用。

转换语法。推荐使用尖括号语法(如 <number>y),而非 as 语法。

接口约定(仅在明确使用接口时适用)。不使用 I 前缀或 Data 后缀;属性按字母顺序排列;将接口视为名词或形容词(如 Shippable、Refundable);继承时继承全部属性,不使用 Omit。

常量优于枚举。绝不使用 enum,改用带 as const 的常量对象,并可通过 typeof 与 keyof 提取类型;简单场景可直接使用联合类型;可用 Object.values 进行校验。

迭代方式。推荐使用 for...of 循环而非 forEach,理由是 for...of 支持 break、continue、return、await,并且具有更好的调试与堆栈跟踪;map/filter/reduce 应用于转换而非副作用。

导入风格。推荐命名空间导入(如 import * as mongodb from 'mongodb'),而非默认导入。

组织方式。将类型与相关代码放在一起,而不是放在 types/ 目录中;只导出属于公共 API 的类型;使用 ReturnType 和 Parameters 访问私有类型。

适用场景:在编写或审查 TypeScript 代码时,用于统一类型风格、增强类型安全、规范断言与校验方式。

限制:该技能为编码约定与最佳实践指南,不涉及具体运行环境、构建工具或框架的配置;资料中未提供安装命令、收费方式、价格、平台支持或效果数据等信息。