TypeScript包含没有JS库的@types的原理是什么?

通过参考@types/foo,我们可以在TypeScript代码中使用JavaScript库的功能。但为什么?它只是定义了一堆数据类型和接口,但实际的逻辑仍然在JS代码中。如何在不包含原始JS库的情况下运行代码?TypeScript包含没有JS库的@types的原理是什么?

例如,要在TypeScript中实现地图服务,我们只包含@types/googlemaps而没有JS库googlemaps。为什么这样?

回答:

如果没有实际库,代码将无法运行。一般来说,你会对@types有一个开发依赖,并且完全依赖于实际的库。

这些类型用于为库回填类型信息,从而为您提供自动完成,提示和类型检查 - 但实际上它们在运行时并未提供任何内容。

在某些情况下,程序包将提供自己的类型,因此您不需要@types开发依赖项,但几乎不存在相反的情况(唯一的例外情况是lib.d.ts不包括在内一个由浏览器等支持的功能,并且你暂时使用了一个定义来让编译器知道它)。

以上是 TypeScript包含没有JS库的@types的原理是什么? 的全部内容, 来源链接: utcz.com/qa/262014.html

回到顶部