SuperAPI AI 工具集

test-your-types

编程与开发

查看项目

更新于 10-16 06:45

技能介绍

用途:为 TypeScript 类型代码编写测试,验证类型声明是否正确、是否与实现同步,尤其适合库作者、复杂类型工具、类型与实现分文件存放以及重构类型逻辑时使用。

核心原则(铁律):为类型写测试,测试有效类型可正常工作、无效类型会报错、错误信息对用户有帮助。

需要测试的三件事:有效类型产出预期类型;无效类型在预期处产生类型错误;错误信息能引导用户修复。

主要用法: 一、用 @ts-expect-error 内联断言某行应产生类型错误。当错误消失时 TypeScript 会提示“Unused '@ts-expect-error' directive”,借此验证错误信息有效。 二、用 expect-type 库的 expectType、expectError 做单元测试风格断言。 三、用 tsd 测试类型定义,编写 index.test-d.ts,运行 npx tsd。 四、用 Vitest 内置类型测试,编写 .test-d.ts,用 expectTypeOf、toEqualTypeOf,运行 npx vitest typecheck。 五、dtslint 用于 DefinitelyTyped 场景,运行 npx dtslint。

需覆盖边界情况:联合类型、never、any、嵌套复杂对象等。也建议测试错误信息是否可读,可用有意义的类型名替代裸 never。

反模式:复杂工具无类型测试、只测正常路径、类型与测试分离、仅在 IDE 手动验证。常见借口及反驳:类型检查器只验证代码是否符合你的类型,不验证类型本身是否正确;类型是编译期运行的代码,需要测试;类型 bug 很隐蔽,可能等用户反馈才发现。

限制与说明:本资料未提供收费、平台或价格信息;所涉命令需原样使用。