在Visual Studio中禁用TypeScript文件自动发现

时间:2016-02-01 18:12:26

标签: visual-studio typescript

在TS 0.9之前,Visual Studio要求所有TypeScript文件通过 ///< reference ... /> 引用它们的依赖项。 如果引用不正确或错过,则抛出错误。 从v0.9开始,这种行为发生了变化:现在,Visual Studio会自动发现所有可用的TS文件,并且不会抛出任何错误(显然是因为它知道所有依赖项)。

我们遇到的问题是文件顺序。如果没有正确的 ///< reference ... /> ,Visual Studio会生成错误连接的结果文件,从而导致JS错误。

例如,我们有类型Foo和Boo。 Boo使用Foo。你会期望Foo在Boo之前被宣告,但实际上Foo的声明是在Boo之后。

当然我们可以使用 ///< reference ... /> ,即使VS实际上并不需要它,构建过程也可以正常工作。但是,由于VS在使用对所需文件的未命中引用时不会抛出任何错误,因此您永远不会知道结果文件是否正确连接并且类型声明是否正确排序。

所以,我想知道是否有办法禁用此功能"自动发现"模式和接收未解析的引用列表。或者可能还有其他可以使用的工作吗?

BTW,我们也试过了TS gulp插件,它产生了正确连接的JS代码。不幸的是,它比内置VS TypeScript慢(5-6秒对1-2秒)。这就是我们回到VS的原因。

1 个答案:

答案 0 :(得分:1)

感谢其中一位TS开发人员找到了解决方案(供参考check GitHub page)。 我必须说,如何解决这个问题是完全不明显的,如果没有TS开发人员,我甚至不会认为tsconfig.json可以某种方式改变Visual Studio插件行为(在TS网站上也没有关于此的信息博客)。所以,再次感谢Mohamed Hegazy向我提供了信息:)

如果您遇到与我相同的问题,则必须执行以下操作:

  1. 为Visual Studio安装TS 1.8+
  2. 将tsconfig.json添加到带有打字稿文件的根文件夹
  3. 将对“entry files”的引用添加到tsconfig.json的“files”部分(在我的例子中,我们在这里添加了2个文件;从这两个文件开始,我可以发现解决方案中的每个TS文件)
  4. 不要忘记添加对“.d.ts”的引用