库作者如何用类型测试验证声明文件的兼容性与错误边界
简答题中等577 次浏览
参考答案与解析
# 核心结论
声明文件能够通过自身编译,只能说明其语法和内部引用基本成立,不能证明消费者获得了正确的类型约束。库作者应围绕公共契约编写类型测试,同时覆盖正向调用、负向调用、类型推断、导入方式、编译选项和实际发布产物。运行时测试负责验证代码行为,类型测试负责验证编译期接口,两者不可相互替代。
# 底层机制
TypeScript采用结构类型系统,过宽声明很容易“测试通过”。例如参数和返回值若使用any,大多数调用都不会报错,但声明已经失去约束能力。因此,类型测试不能只有“应该编译”的案例,还要包含“必须报错”的案例。负向测试宜使用@ts-expect-error:预期错误存在时测试通过;如果声明意外变宽、错误消
