打字稿:定义文件和全局变量

时间:2014-09-01 06:54:14

标签: typescript

几乎所有定义文件都很容易获得,你知道在哪里,做一个declare moduledeclare var。这不是一个大问题吗?如果我忘记导入已声明模块的实现然后使用它,编译器将永远不会给我一个错误,但应用程序将在运行时崩溃。

我认为如何解决这个问题的一种方法是仅使用declare module "topLevelName"编写定义文件,因此您无法在不首先使用它的情况下意外使用它。但是这会给像jQuery之类的东西带来问题,因为人们倾向于不require它,而只是把它放到全局上下文中。在这种情况下,当前的方法实际上正常工作。

我似乎无法绕过这个系统的巨大限制。我错过了什么吗?

1 个答案:

答案 0 :(得分:1)

  

如果我忘记导入已声明模块的实现然后使用它,编译器将永远不会给我一个错误,但应用程序将在运行时崩溃。

  

这不是一个大问题

不是真的。在初学者级别的经验中,添加类型但忘记包含JavaScript的可能性并不是很高。

  

我错过了什么吗?

没有

更多

更大的问题是lib之间的类型兼容性,例如不同的TypeScript库,这取决于不同版本的JQuery。