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

问题描述 投票:2回答:1

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

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

javascript typescript
1个回答
3
投票

没有实际库,代码无法运行。通常,您将对@types具有开发依赖性,并且对实际库具有完全依赖性。

这些类型用于库的反向填充类型信息,以便为您提供自动完成,提示和类型检查 - 但它们实际上并不在运行时为您提供任何内容。

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

© www.soinside.com 2019 - 2024. All rights reserved.