几乎所有定义文件都很容易获得,你知道在哪里,做一个declare module
或declare var
。这不是一个大问题吗?如果我忘记导入已声明模块的实现然后使用它,编译器将永远不会给我一个错误,但应用程序将在运行时崩溃。
我认为如何解决这个问题的一种方法是仅使用declare module "topLevelName"
编写定义文件,因此您无法在不首先使用它的情况下意外使用它。但是这会给像jQuery之类的东西带来问题,因为人们倾向于不require
它,而只是把它放到全局上下文中。在这种情况下,当前的方法实际上正常工作。
我似乎无法绕过这个系统的巨大限制。我错过了什么吗?
答案 0 :(得分:1)
如果我忘记导入已声明模块的实现然后使用它,编译器将永远不会给我一个错误,但应用程序将在运行时崩溃。
是
这不是一个大问题
不是真的。在初学者级别的经验中,添加类型但忘记包含JavaScript的可能性并不是很高。
我错过了什么吗?
没有
更大的问题是lib之间的类型兼容性,例如不同的TypeScript库,这取决于不同版本的JQuery。