关于测试模块化代码的一件不幸的事情是,有时您必须导出一些东西来测试它们。这会污染您的代码,并且还会使编译器或 linter 上的“未使用变量”标志等不错的功能变得不那么有价值 - 如果您在应用程序中删除了一个用法,您的测试中可能仍然有一个用法。
一种可能的解决方案是类似于“弱引用”,其中测试代码将引用它正在测试的东西,但使用明确的“linter,编译器:请不要将此引用视为使用”标志。
我检查了tsc
标志和tslint
配置文件,但没有看到任何东西。A)我错过了什么吗?B) 这是一个好主意吗?实施起来有多难?
(其他解决方案就没有那么好。例如,您不能导出内容然后使用rewire
对模块进行自省以获取私有内容。我的理解是 tsc 将无法遵循这样的参考。)
谢谢你的帮助。