javascript - TypeScript包含@types而不包含JS库的原理是什么?

标签 javascript typescript

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

例如,要在 TypeScript 中实现 map 服务,我们只需包含 @types/googlemaps,而不包含 JS 库 googlemaps。为什么会这样?

最佳答案

如果没有实际的库,代码就无法运行。一般来说,您将具有对 @types 的开发依赖以及对实际库的完全依赖。

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

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

关于javascript - TypeScript包含@types而不包含JS库的原理是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47865230/

相关文章:

javascript - Angular 删除所有已完成的内容在没有刷新的情况下无法工作

javascript - 验证所见即所得的空白

javascript - 如何使用 uuid 作为 postgres 的默认 ID?

javascript - 如何使用这个名为 bezierjs 的库?

javascript - Bootstrap 模态以编程方式更改宽度

typescript - 使用 Fetch 和 Promise 的 Angular 2 服务

javascript - 在 TypeScript 中使用 Datejs

javascript - 显示 : none is flickering content that should be hidden when loading the webpage

Typescript 循环函数引用

javascript - 将自定义动画传递给组件